调用removeCallbacks后,runnable中的asynctask不会停止

ton*_*099 0 android android-asynctask android-handler

我有一个名为myAsync的asynctask,它执行一些网络操作(从服务器获取数据,并解析json).

一旦活动运行,我也会创建一个处理程序.

我也有一个runnable,我运行asynctask.我使用runnable的原因是因为我将在Handler的postdelayed方法中使用它,因为我希望每1分钟重复一次.

Runnable runnable = new Runnable()
{
    public void run()
    {
        new myAsync ().execute();
    }
};
Run Code Online (Sandbox Code Playgroud)

然后我在onResume中使用上面的runnable;

@Override
protected void onResume()
{
    super.onResume();
            handler.postDelayed(runnable, 60000);
    }
Run Code Online (Sandbox Code Playgroud)

每当我离开活动时,我都希望支票停止,所以我打电话给,

 handler.removeCallbacks(runnable);
Run Code Online (Sandbox Code Playgroud)

然而,asynctask继续不停地运行.我该怎么办 ?

med*_*eda 5

整点asynctask是在主线程上运行一个线程.所以运行它是没有意义的Runnable()

  • 但我希望它每隔x个时间重复一次,这就是为什么我使用处理程序的postdelayed方法,它接受runnables,所以我把它放在一个runnable中.什么是另类? (2认同)