Android ルーパーに問題があります。AsynTask を拡張したクラスがあります。doInBackground() メソッド内には、 Looper.prepare() と以下のコードがあります。
初めてうまく動作しますが、その後、「スレッドごとに作成できるルーパーは1つだけです」という例外が発生します。
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();
}
}
試す...
Looper.getMainLooper().quit();
次のチェックを追加するだけです。
if (Looper.myLooper() == null)
Looper.prepare();
getActivity().runOnUiThread (new Thread(new Runnable() {
public void run() {
Looper.myLooper();
getActivity().invalidateOptionsMenu();
}
}));