私は以下の問題を抱えています:アクティビティAをオープンしました。そこからアクティビティBを開きました。そして、アクティビティCをBから開きたいと思います。ボタンを押すと、前の(B)アクティビティに戻るのではなく、アプリケーションを終了する必要があります。私はここ(http://stackoverflow.com/questions/5794506/android-clear-the-backstack)のアイデアを使用しようとしましたが、動作しません。私は意図を扱う方法を知っている、私はバックナビゲーション問題にのみ興味がある。前のアクティビティに戻る代わりにアプリケーションを閉じる
1
A
答えて
6
次のようにあなたの活動を開始し
..
この活動に活動の
int k=1;
Intent i=new Intent(A.this,B.class);
startActivityForResult(i,k);
この活動のBで
int j=1;
Intent i=new Intent(B.this,C.class);
startActivityForResult(i,j);
をボタン
をバック上書きC@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
setResult(RESULT_OK, null);
finish();
}
return super.onKeyDown(keyCode, event);
}
と活動Bに
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode ==1) {
if (resultCode == RESULT_OK) {
setResult(RESULT_OK, null);
finish();
}
}
これを入れて、アクティビティに
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode ==1) {
if (resultCode == RESULT_OK) {
finish();
}
}
}
1
アクティビティAとBの両方ともonStop()
に入れてください。これにより、両方のアクティビティが終了するため、アクティビティCから戻るボタンを押すと、アプリケーションは終了します。これは、アプリケーションを終了する
System.exit(0);
を使用することができ、あなたの問題BackPressで
public void onStop(){
super.onStop();
finish();
}
0
を解決するだろう。
1
これを入れて、私はでSystem.exit(0)を呼び出すに強くお勧めします。
できることは次のとおりです。アクティビティAは、StartActivity(B)の直後にfinish()を呼び出します。同様に、BはstartActivity(C)の直後にfinish()を呼び出します。このようにして、Cがアクティブな唯一のアクティビティです。むしろ、それをスタックから削除します。
onStop()でfinish()を呼び出してはいけません。新しいアクティビティを開始するとき、またはアクティビティの処理が終了したら、finish()を呼び出します。
Btw、finish()はアクティビティを直ちに終了しません。 Finishはスタックに置かれ、現在のメソッドが終了するとすぐに実行されます。同様に、startActivityは直ちに実行されず、現在のメソッドが終了すると実行されます。
0
コードを使用してデバイスのホーム画面に入ることができます。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
関連する問題
- 1. Jqueryダイアログを閉じる代わりに
- 2. 破棄を使用する代わりにUIAlertViewを閉じる
- 3. ファンシーボックスのポップアップウィンドウを閉じる方法の代わりに
- 4. FancyBox 3 on mobile - スワイプの代わりにタップを閉じるポップアップ
- 5. アクティビティの代わりにBroadcastReceiver
- 6. ワンクリックですべてのフラグメントを閉じ、アクティビティに戻る
- 7. 前のアクティビティに戻る
- 8. ハードウェア戻るボタンが閉じるアプリケーション
- 9. 前のアクティビティから現在のアクティビティを閉じる
- 10. alertdialogを隠す代わりに以前のアクティビティ
- 11. 閉じる閉じる前に変更を保存閉じる
- 12. アクティビティを閉じる
- 13. アンインストール前にWiXアプリケーションを閉じる - 開いているアプリケーションメッセージを閉じる
- 14. メインアクティビティに戻る代わりにボタンをクリックするとアプリケーションが終了する
- 15. Androidアクティビティ戻るボタン前のアクティビティに戻るがデータはない
- 16. addToBackStackは機能しません。フラグメントをポップする代わりにアクティビティを閉じます。
- 17. 通知をクリックして開く前にアクティビティを閉じる
- 18. グーグルスクリプト:戻り値の代わりに式
- 19. 閉じるトップ・アクティビティ
- 20. このアクティビティを閉じるには? (アンドロイド)
- 21. ASP.NET MVC5 Webアプリケーションの代わりにMessageBox.Showの代わりになるもの
- 22. 共有ダイアログを閉じた後、アプリケーションに戻る
- 23. カスタムダイアログボックスからアクティビティを閉じるには?
- 24. 関数戻り値の代わりに戻り値なし
- 25. アクティビティの代わりにActivityCompatを使用するには
- 26. アプリケーションを閉じるメッセージを閉じる
- 27. 代わりに、アプリケーション/モデル
- 28. QML:アプリケーションを閉じる前に確認を依頼する
- 29. 同じアクティビティに戻るには?
- 30. ログインButtoは同じページに戻ります。ホームの代わりに