Android 为什么不';异步任务是否总是在onClickListener中工作?

Android 为什么不';异步任务是否总是在onClickListener中工作?,android,methods,onclick,android-asynctask,onclicklistener,Android,Methods,Onclick,Android Asynctask,Onclicklistener,在过去的几个月里,我注意到了这一点。如果我在按钮上设置clickListener来执行异步任务,它并不总是被执行。我通过将执行异步任务的代码行包装到一个方法中来解决这个问题 以下代码并非总是有效: button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new CustomAsyncTask().execute();

在过去的几个月里,我注意到了这一点。如果我在按钮上设置clickListener来执行异步任务,它并不总是被执行。我通过将执行异步任务的代码行包装到一个方法中来解决这个问题

以下代码并非总是有效:

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(我知道它不会一直被调用,因为它不会打印任何内容)

私有类CustomAsyncTask扩展了AsyncTask{
@凌驾
受保护的Void doInBackground(Void…参数){
Log.i(“CustomAsyncTask”、“doInBackground”);
返回null;
}
}

customAsyncTask是活动的子类还是仅仅是一个类?它是一个子类,但它可以是活动的子类,也可以不是,同样的问题也会发生。我现在已经将该类添加到了最初的帖子中。您是否尝试过CustomAsyncTask的
default
public
访问级别?@DmitryZaitsev,是的。这似乎没有什么区别。@NotACleverMan第一次执行然后停止,对吗?或者是被随机处决?
private class CustomAsyncTask extends AsyncTask<Void, Void, Void>{

    @Override
    protected Void doInBackground(Void... params) {

        Log.i("CustomAsyncTask", "doInBackground");

        return null;
    }
}