「アプリケーションBをメモリに保持する方法」と尋ねるとき、正確にはどういう意味ですか?
あなたが本当に2つの別々のアプリケーションについて話しているなら、Androidは別々のプロセスで各アプリケーションを開始します。各プロセスには独自の仮想マシンがあります。アプリケーションAのアクティビティがアプリケーションBのアクティビティを開始する場合、2つの実行中のプロセスがあります。Bのアクティビティが呼び出されるとfinish()
、それが実行されます。しばらくして、AndroidはonDestroy()
Bのアクティビティを呼び出し、しばらくして、AndroidはBが実行されているプロセスを強制終了します。Androidは、メモリが必要なとき、または必要と判断したときにプロセスを強制終了します。プロセスを強制終了するために使用する内部基準に基づいています。
ユーザーがアプリケーションBからアプリケーションAに戻った後、ユーザーがアプリケーションBでアクティビティを再度開始すると、Androidは、アプリケーションBが実行されているプロセスでそのアクティビティの新しいインスタンスを作成します。プロセスがすでにAndroidによって強制終了されている場合、AndroidはアプリケーションBの新しいプロセスを作成し、そのプロセス内にアクティビティの新しいインスタンスを作成します。
アクティビティが呼び出されるとfinish()
、それは再利用されません。されております。死んでいます。破棄とガベージコレクションの準備ができています。アクティビティに何launchMode
を設定するか、またはにどのフラグを設定するかは関係ありませんIntent
。
これがあなたの質問に答えることを願っています。