スレッドがLooper.Prepare()とLooper.loop()でメッセージを待つというシナリオがあります。 UIでボタンがクリックされたとき、ボタンのクリックを通知するメッセージをHandlerに送信します。ボタンを2分間クリックしなければ、私はルーパーを壊したい、それを達成する方法は?私はタイマーとTimerTaskをを使用してみましたが、何もアンドロイドハンドラが一定期間メッセージを待つ
Looper.prepare();
uiHandler = new Handler() {
public void handleMessage(Message msg) {
// Act on the message
if (msg.obj.contains("DONE")) {
Toast.makeText(MainActivity.this, "Done task",
Toast.LENGTH_LONG).show();
}
}
}
Looper.loop();
は、UIスレッドから非UIスレッドで次のようにコードがある
起こりません:あなたはハンドラを使用することによって、これを達成することができます
btnDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message msg = Message.obtain();
msg.obj = "DONE";
uiHandler.sendMessage(msg);
}
});
'<=、それは最初のJavaの基礎を学ぶ方が良いでしょう... – Selvin
コール' Looper.quit() ''適切な== "DONE"。 – earthw0rmjim
2ミントが完了したことをルーパーに通知するにはどうすればいいですか?私は直面しています... –