私たちの活動のほとんどは、ユーザー固有のモデルにアクセスします。これらのアクティビティはすべて、getModel() 呼び出しを提供する ModelActivity 基本クラスから継承されます。これらのアクティビティの 1 つが (AccountManager コールバックを介して) ユーザーがサインアウトしたことを検出すると、既存のモデルに固執しますが、FLAG_ACTIVITY_CLEAR_TOP でインテントを開始することにより、ルート アクティビティ (ユーザー固有ではない) に戻る準備をします。
ただし、アプリが実行されていないときにユーザーがアカウントを削除すると、アクティビティが復元されたときに問題が発生します。アクティビティは、モデルがないことを処理する必要があるため、コードがより複雑になり、バグが発生しやすくなります。
理想的には、アクティビティが作成される前に、アプリケーションの復元プロセスをインターセプトします。次に、アカウントとモデルがあるかどうかを確認し、そうでない場合は、保存されたアクティビティのスタックをクリアし、最後に保存されたアクティビティではなく、ルート アクティビティから再開します。しかし、コードを実行できる最初の場所は、アクティビティの onCreate コールバックです。
アプリケーションがバックグラウンド保存から復元されたときに、保存されたアクティビティが作成される前にコードを実行する方法はありますか?