过去几个月我注意到了这一点。如果我在按钮上设置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;
}
}