私は2つのアクティビティを持つアプリケーションを用意しています。それらをAとBとしましょう.Aは最初のアクティビティ、Bは2番目のアクティビティです。 Bを起動すると、Bは外部ネットワーク接続を設定するため、アプリケーションの実行が停止するまでアクティビティを破棄したくありません。アクティビティを有効にしてAndroidで正しく終了する
私が欲しいのは、アクティビティをAに入力し、ウィジェットを押してBに移動する、つまりA - > Bです。彼らがBの戻るボタンを押した場合、Bを破棄したくありません。私はAが再作成されたかどうかは気にしないが、デフォルトではそうではない。現在のアクティビティがAになっています。人々がウィジェットを押してBに行くと、開いているネットワーク接続で既存のBアクティビティを再入力します。彼らがもう一度戻ると、私は彼らにAの活動に行きます。今、Aで、彼らが戻ると、私はアプリケーション内のすべての活動を終了したい。
私はこれをBのonBackPressed()メソッドを作成するという点で(BアクティビティがAに行くときに破棄されないように)どこかで得ました。また、インテントフラグ "FLAG_ACTIVITY_REORDER_TO_FRONT"をBを呼び出すAのインテントに追加すると、Aからの2回目のコール時にBが再作成されるのを防ぐことができますが、これは最善の方法ではありません。
- は活動B.
- 押して戻ってこれはいけないアクティビティA.を開くためにBでボタンを開き、中の活動A.
- 押しウィジェットでアプリケーションを入力します。私は何をすべきか繰り返しに
Bを閉じてスタックに置く。
- もう一度A.私はBのウィジェットを押します。これは既存のBアクティビティを開くはずです。
- 今すぐBに戻り、Aに戻る。
- Aを押してアプリケーションを終了する。
プログラムフローは[ホームスクリーン] - > [アクティビティA] - > [アクティビティB]です。[戻る]キーはこのフローを逆にします。
はい、そうです。画面外に出ると生き残るアクティビティオブジェクトに依存することはできません。また、サービスクラスはネットワーク接続を維持するのに最適です。これは私がやったことであり、これまでこれまでうまくいっています。ありがとう。 –