Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:每个线程只能创建一个循环器_Android_Looper - Fatal编程技术网

Android:每个线程只能创建一个循环器

Android:每个线程只能创建一个循环器,android,looper,Android,Looper,我有一个Android looper的问题。我有一个类扩展了AsynTask。在doInBackground()方法中,我有Looper.prepare()和下面的一些代码 它第一次运行良好,但之后出现了一个例外 “每个线程只能创建一个活套” 使用Looper.quit()似乎有一些解决方案,但我无法实现它 任何帮助都将不胜感激。试试 Looper.getMainLooper().quit(); 只需添加以下检查 if (Looper.myLooper() == null) Loo

我有一个Android looper的问题。我有一个类扩展了AsynTask。在doInBackground()方法中,我有Looper.prepare()和下面的一些代码

它第一次运行良好,但之后出现了一个例外 “每个线程只能创建一个活套”

使用Looper.quit()似乎有一些解决方案,但我无法实现它

任何帮助都将不胜感激。

试试

Looper.getMainLooper().quit();

只需添加以下检查

 if (Looper.myLooper() == null)
     Looper.prepare();

在我看来,Looper.quit()就是您在这里需要的。在android API文档中,明确说明了“确保在调用此方法后调用loop(),并通过调用quit()结束它”。您所说的“我无法实现它”是什么意思?我的意思是,我无法在Looper中找到quit()。它显示getMainLooper、myLooper()、loop()、myQueue()、prepare()、prepareMainLooper(),但不显示quit()。
getActivity().runOnUiThread (new Thread(new Runnable() { 
    public void run() {
        Looper.myLooper();
        getActivity().invalidateOptionsMenu();
    }
}));
 if (Looper.myLooper() == null)
     Looper.prepare();