我在使用 Android Looper 时遇到问题。我有一个扩展了 AsynTask 的类。在 doInBackground() 方法中,我有 Looper.prepare() 和下面的一些代码。
它第一次运行良好,但之后它给出了一个异常“每个线程只能创建一个 Looper”。
似乎有一些使用 Looper.quit() 的解决方案,但我无法实现它。
任何帮助将不胜感激。
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();
}
}
Try...
Looper.getMainLooper().quit();
getActivity().runOnUiThread (new Thread(new Runnable() {
public void run() {
Looper.myLooper();
getActivity().invalidateOptionsMenu();
}
}));
只需添加以下检查。
if (Looper.myLooper() == null)
Looper.prepare();