6

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

它第一次运行良好,但之后它给出了一个异常“每个线程只能创建一个 Looper”。

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

任何帮助将不胜感激。

4

4 回答 4

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();
      }
  }
于 2011-12-14T02:38:05.837 回答
0

Try...

Looper.getMainLooper().quit();
于 2011-06-16T13:40:36.883 回答
0
getActivity().runOnUiThread (new Thread(new Runnable() { 
    public void run() {
        Looper.myLooper();
        getActivity().invalidateOptionsMenu();
    }
}));
于 2013-01-15T18:29:16.917 回答
0

只需添加以下检查。

 if (Looper.myLooper() == null)
     Looper.prepare();
于 2015-09-01T11:59:30.590 回答