如果在Android Activity中使用的按钮的onClick()监听器的工作速度较慢,可以尝试以下解决方法:
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new MyAsyncTask().execute();
}
});
}
private class MyAsyncTask extends AsyncTask {
@Override
protected Void doInBackground(Void... voids) {
// 执行耗时操作
return null;
}
@Override
protected void onPostExecute(Void result) {
// 操作完成后更新UI
}
}
}
public class MainActivity extends AppCompatActivity {
private Button button;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler = new Handler();
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
// 执行耗时操作
// 操作完成后更新UI
handler.post(new Runnable() {
@Override
public void run() {
// 更新UI
}
});
}
}).start();
}
});
}
}
通过使用异步任务或Handler,可以将耗时操作移出主线程,从而提高Android Activity按钮的onClick()监听器的工作速度。
上一篇:Android Activity::onCreate 在 Application.onCreate 之前调用。
下一篇:Android ActivityResult API 未解决的引用错误 registerForActivityResult