1
私はすべてのコードでうまく動作するゲームActivity
(アクティビティA)を持っています。`継承アクティビティでハンドラを作成できません... Looper.prepare()`
Can't create handler inside thread that has not called Looper.prepare()
:それから私はextends
アクティビティA.しかし、トーストラインに遭遇したとき、活動Bが突然例外を(活動Aがうまくトーストを示す作品)スローされたことを、私の新しいゲームモード用の新Activity
(アクティビティB)を作成します
アクティビティBは、負荷レベルメソッドのみをオーバーライドします。問題を処理するための簡単な方法があるかもしれません
Handler innerHandler;
(new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
innerHandler = new Handler() {
@Override
public void handleMessage(Message message) {
Toast.make(...);
}
@Override
public void dispatchMessage(Message message) {
handleMessage(message);
}
};
Message message = innerHandler.obtainMessage();
innerHandler.dispatchMessage(message);
Looper.loop();
}
})).start();
:
非常に便利です!どうもありがとうございました。私は私の問題を解決した:) –
私は同じ問題で昨日苦労した。私は幸せでした(: –
@OnuraySahin私はこの答えが長いこと前から知っているが、私はそれが非常に有益であることを知っていましたが、 'this Handler class静的でなければならないか、リークが発生する可能性があります。ただし、静的にすると、トーストのコンテキストにアクセスできないということを意味します。 – Deena