为什么AsyncTasks不能始终在onClickListener中工作?

时间:2012-09-03 11:37:56

标签: android methods onclick android-asynctask onclicklistener

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

0 个答案:

没有答案