如何停止从其他片段运行asynctask

时间:2015-01-27 16:20:10

标签: android android-fragments android-asynctask

我有一个导航抽屉,在我的一个片段上,有一个运行的aysnctask,每10秒运行一次。然后当我离开那个特定的片段继续我的应用程序的其他片段时,我的应用程序崩溃并出现致命异常错误

我怎么能停止运行asynctask就是从这里我将停止它:

Fragment fragment = null;
    int counter;
    switch (position) {
    case 0:     

        fragment = new HomeFragment();
        break;

    case 1:

        fragment = new ProfileFragment();       
        break;

    case 2:

        fragment = new ControllerFragment();
        break;

这是我的日志猫:

01-28 00:23:50.236: E/AndroidRuntime(7756): FATAL EXCEPTION: AsyncTask #2
01-28 00:23:50.236: E/AndroidRuntime(7756): java.lang.RuntimeException: An error occured while executing doInBackground()
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.lang.Thread.run(Thread.java:856)
01-28 00:23:50.236: E/AndroidRuntime(7756): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.os.Handler.<init>(Handler.java:121)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.widget.Toast$TN.<init>(Toast.java:361)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.widget.Toast.<init>(Toast.java:97)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.widget.Toast.makeText(Toast.java:254)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at com.example.myandroidphp.ControllerFragment$activityIns.doInBackground(ControllerFragment.java:665)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at com.example.myandroidphp.ControllerFragment$activityIns.doInBackground(ControllerFragment.java:1)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-28 00:23:50.236: E/AndroidRuntime(7756):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-28 00:23:50.236: E/AndroidRuntime(7756):     ... 5 more

0 个答案:

没有答案