私には2つの活動があり
ます1.活動12.活動
2
activity1が実行されています。activity1のイベントで、activtiy2に切り替えたかった
条件は
1.新しいアクティビティを作成し、activity2が生きていない場合に実行します。
2.アクティビティ2が生きている場合は再開します
どちらの場合も、アクティビティを閉じてはなりません1
この要件を達成する方法。
私には2つの活動があり
ます1.活動12.活動
2
activity1が実行されています。activity1のイベントで、activtiy2に切り替えたかった
条件は
1.新しいアクティビティを作成し、activity2が生きていない場合に実行します。
2.アクティビティ2が生きている場合は再開します
どちらの場合も、アクティビティを閉じてはなりません1
この要件を達成する方法。
Activity2onCreateに次のように記述できます。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null){
//If activity is not loaded first time
}
else
{
//activity is loaded first time
}
}
Intent i = new Intent(activity1.this, activity2.class);
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
明示的に呼び出さない限り、そのシナリオでactivity1が強制終了されるかどうかを制御することはできません.finish()
。そうしないと、戻るボタンを押すまで破棄されません。コール.finish()
またはメモリマネージャは、バックグラウンドアクティビティによって占有されているメモリが必要であると判断します。
activity2の再作成を回避するには、マニフェストでlaunchModesingleInstance
を使用し、それを読んでsingleTask
ください。おそらくsingleTop
、違いについては、リンクを参照してください。