Androidがもう一度戻るキーを押して終了する3つ目の方法
1298 ワード
ネット上ですでにその他の方式があって、個人の感じ、onKeyDownの中で、できるだけ操作を減らして、次の実現の構想があります.
Handlerを使用して実装し、onKeyDownでメッセージを1つ送るだけで、他の操作はhandleMessageに任せて処理すればOKです.
まず、Handlerとイベントと待機時間を定義します.
次に、onKeyDownを再ロードします.
Handlerを使用して実装し、onKeyDownでメッセージを1つ送るだけで、他の操作はhandleMessageに任せて処理すればOKです.
まず、Handlerとイベントと待機時間を定義します.
private static final int MSG_EXIT = 1;
private static final int MSG_EXIT_WAIT = 2;
private static final long EXIT_DELAY_TIME = 2000;
private Handler mHandle = new Handler() {
public void handleMessage(Message msg) {
switch(msg.what) {
case MSG_EXIT:
if(mHandle.hasMessages(MSG_EXIT_WAIT)) {
finish();
} else {
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
mHandle.sendEmptyMessageDelayed(MSG_EXIT_WAIT, EXIT_DELAY_TIME);
}
break;
case MSG_EXIT_WAIT:
break;
}
}
};
次に、onKeyDownを再ロードします.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(KeyEvent.KEYCODE_BACK == keyCode) {
mHandle.sendEmptyMessage(MSG_EXIT);
return true;
}
return super.onKeyDown(keyCode, event);
}