このトピックはこれまで何度も議論されていますが、まだ管理していません。マイMainActivity
UIスレッドに送信されたメッセージは到着しません。
は、建設期間中に、別のクラスでは、コード内の
mHandlerUi = new Handler() {
@Override
public void handleMessage(Message msg){
onMessageArrive(msg);
}
};
その後、コンストラクタで初期化されHandler mHandlerUi;
と呼ばれる性質を持っている私は別のハンドラのプロパティを初期化する
mHandlerToUi = new Handler(Looper.getMainLooper());
スレッドの存続期間中、次のコードスニペットがX回実行されます。私はこっちに行方不明です何
Message msg = mHandlerToUi.obtainMessage();
msg.what = ConstMessages.MSG_NEW_GPS_POINT;
msg.setData(bundleContet);
mHandlerToUi.sendMessage(msg);
は残念ながらメッセージは、両方のスレッドが同じUIのルーパーを使用して、
をMainActivityのルーパーを到着したことがありませんか?
このまさに私が何をしようとしているが、私はクラス間のハンドラのリファレンスを共有する必要が来るか、とないそのルーパーの良い答えを見つけることができますか? DuplicateHandle(C言語)を使用する場合、同じ効果を達成する方法はありますか? –
Kevinrobはあなたの質問に答えてくれました。何がハンドラ参照を渡すのを止めますか? – qichuan