通常のシステム動作を何らかの方法で引き起こす方法はありますか?
alwaysRetainTaskStateをテストする最も簡単な方法は、アクティビティを終了して、1トンのメモリを使用する複数のアプリケーション(順番に1つずつ)を起動することです。その反復性はかなり信頼できます。私が適切なアプリケーションを選んだら、約40秒後に私のGalaxy S-IIで1つ起動することができます。
私はこのフラッグをテストするための直接的な方法がないことを知っています。
フラグandroid:clearTaskOnLaunchを設定した場合、アプリケーションを再起動すると、alwaysRetainTaskStateと同じことが実行されますか?
絶対にありません。 ClearTaskOnLaunch
は基本的に、あなたのアプリがルートアクティビティに戻ることを意味します。他のすべてのアクティビティはアクティビティスタックから削除されます。つまり、アクティビティが子アクティビティに依存してコンテンツを配信する場合、そのアクティビティはすべて失われます。つまり、ユーザーはアプリケーションのアクティビティスタックの初期状態に戻ります。 の状態を維持することがあります。アクティビティはalwaysRetainTaskStateフラグに依存します。
追加情報
alwaysRetainTaskState
は、あなたのルートアクティビティでのみ有効です。その基本的な目的は、それと他のすべてのアクティビティを長期間生き続けることです。これらのアクティビティに直接結び付けられていないオブジェクトはすべて流動的であり、破棄することができます。多くの場合、alwaysRetainTaskState
が機能しない場合は、コードが手動で参照を削除しているためです(通常、onPause()
などのイベントへの応答)。
アプリケーションは、確かに正しい用語ではありません。アクティビティはメモリのために終了します。 ANYコンポーネントが存続している限り、アプリケーションは常に有効です。さらに、ユーザーのコードを見ておらず、必ずしも有効ではないと仮定しています。この動作は、Applicatioオブジェクトに情報がない場合には確実に発生します。最後に、OPの質問には何ら言及していません。 OPはフラグをテストしたい。 –