[解決済み】Android - 「戻る」ボタンをオーバーライドして、アクティビティをFinish()しないようにするには?
2022-04-09 05:33:14
質問
現在、アクティビティが表示されると、通知バーにも通知が表示されるようにしています。
これは、ユーザーがホームを押してアクティビティがバックグラウンドに押されたとき、通知を介してアクティビティに戻れるようにするためです。
問題は、ユーザーが戻るボタンを押したときに、アクティビティは破壊されますが、Notificationは残ることです。しかし、ユーザーがこれを試すと、古いものを戻すのではなく、新しいアクティビティを開始しようとするため、Nullポインタが表示されます。
そこで、基本的には「戻る」ボタンを「ホーム」ボタンと全く同じように動作させたいのですが、これまでに試した方法は以下のとおりです。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
Log.d("CDA", "onKeyDown Called");
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
return;
}
しかし、上記のコードではまだアクティビティが破壊されてしまうようです。どうすれば、戻るボタンが押されたときにアクティビティが破壊されないようにできますか?
解決方法は?
キーリスナーを削除するか
true
がある場合
KEY_BACK
.
バックキーをキャッチするために必要なのは、以下のとおりです。
スーパー
で
onBackPressed()
).
また、バックグラウンドでサービスを実行させる予定がある場合は、必ず
startForeground()
で、継続的に通知するようにします。さもないと、Android はメモリを解放する必要がある場合、サービスを停止します。
@Override
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
関連
-
[解決済み】"ビットマップが大きすぎてテクスチャにアップロードできない"
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] Androidのローテーションでアクティビティを再開する
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] Intentsを使用して、あるAndroid Activityから別のAndroid Activityにオブジェクトを送信するにはどうすればよいですか?
-
[解決済み】Androidで透明なActivityを作成する方法は?
-
[解決済み】戻るボタンをホームボタンのように動作するように上書きする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】react-native: コマンドが見つかりません。
-
[解決済み】java.lang.RuntimeException: アクティビティを開始できない ComponentInfo
-
[解決済み】Android Studioの初回起動。Android SDKアドオンリストにアクセスできない
-
[解決済み】ビットマップを保存する場所について
-
[解決済み】googleコンソールエラー`OR-IEH-01`について
-
[解決済み】android.content.res.Resources$NotFoundExceptionの取得:androidにリソースが存在する場合でも例外が発生する。
-
[解決済み] Looper.prepare()を呼び出していないスレッドではハンドラを作成できない
-
[解決済み] sendUserActionEvent() は null です。
-
[解決済み] Android Fragment no view found for ID?
-
[解決済み] android.intent.action.MAINの意味は何ですか?