4

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

0 回答 0