我遇到了Android looper的问题。我有一个扩展了AsynTask的类。在doInBackground()方法里面我有Looper.prepare()和下面的一些代码。
它第一次运行良好且良好但在此之后它给出了例外 “每个线程只能创建一个Looper”。
似乎有一些使用Looper.quit()的解决方案,但我无法实现它。
任何帮助将不胜感激。
答案 0 :(得分:3)
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
}
}
答案 1 :(得分:0)
...试
Looper.getMainLooper().quit();
答案 2 :(得分:0)
getActivity().runOnUiThread (new Thread(new Runnable() {
public void run() {
Looper.myLooper();
getActivity().invalidateOptionsMenu();
}
}));
答案 3 :(得分:0)
只需添加以下支票即可。
if (Looper.myLooper() == null)
Looper.prepare();