在过去的几个月里,我注意到了这一点。如果我在按钮上设置 clickListener 来执行 AsyncTask,它并不总是被执行。我通过将执行 AsyncTask 的代码行包装在一个方法中来解决这个问题。
这是始终无法正常工作的代码:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new CustomAsyncTask().execute();
}
});
这是我的修复:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
executeAsyncTask();
}
});
public void executeAsyncTask(){
new CustomAsyncTask().execute();
}
我没有注意到它何时会中断和不会中断的模式,但我想知道是否有其他人注意到这一点?
此外,如果有人解释为什么会发生这种情况,那也很酷。
提前致谢。
编辑
这是 CustomAsyncTask (我知道它不会一直被调用,因为它不打印任何东西)
private class CustomAsyncTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
Log.i("CustomAsyncTask", "doInBackground");
return null;
}
}