Android 跑逻辑实现不卡顿,代码示例
时间: 2023-08-05 10:47:41 浏览: 107
在 Android 开发中,避免 UI 卡顿的关键是将耗时的逻辑操作放在子线程中执行,而不是在主线程中执行。
下面是一个计算斐波那契数列的例子,通过在子线程中执行计算操作,避免了 UI 卡顿:
```java
public class FibonacciActivity extends AppCompatActivity {
private EditText mEditText;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fibonacci);
mEditText = findViewById(R.id.edit_text);
mTextView = findViewById(R.id.text_view);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int n = Integer.parseInt(mEditText.getText().toString());
new Thread(new Runnable() {
@Override
public void run() {
final long result = fibonacci(n);
runOnUiThread(new Runnable() {
@Override
public void run() {
mTextView.setText(String.valueOf(result));
}
});
}
}).start();
}
});
}
private long fibonacci(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
}
```
在这个例子中,当用户点击按钮时,我们启动一个新的子线程,在子线程中执行计算斐波那契数列的操作,计算完成后,我们通过 `runOnUiThread` 在主线程中更新 UI,避免了 UI 卡顿。
当然,实际开发中,我们还需要考虑线程安全、内存泄漏等问题。以上仅是一个简单的示例。
阅读全文