私のアプリケーションは、3 ~ 4 のアクティビティを拡張するアクションを実装しています。このプロセスへのエントリ ポイントは、アプリケーション内のさまざまなアクティビティからのものにすることができます。(HomeActivity、さまざまな displayActivity)。最後のアクティビティが正常に終了したら、最初のアクティビティに戻りたいです。
それを行うためのベストプラクティスの方法はありますか? ありがとうございました。
私のアプリケーションは、3 ~ 4 のアクティビティを拡張するアクションを実装しています。このプロセスへのエントリ ポイントは、アプリケーション内のさまざまなアクティビティからのものにすることができます。(HomeActivity、さまざまな displayActivity)。最後のアクティビティが正常に終了したら、最初のアクティビティに戻りたいです。
それを行うためのベストプラクティスの方法はありますか? ありがとうございました。
グローバルな静的ブール値を使用してこれを支援できます (例ではSomeClass.IsClosingFlow
)。さらに、各アクティビティが「フロー」内にある場合は「マーク」するように定義する必要があります (フロー = 必要なアクティビティのパックの一部であることを意味します)。閉鎖されます)。すべてのアクティビティが何らかの抽象アクティビティ (つまり ) を拡張している場合は、このマークを抽象メソッドとして使用することをお勧めしますisActivityInFlow()
。
次のコードはこれを示してonResume()
います。アプリケーションの各アクティビティに配置する必要があります。
// Check to see if we are in the process of closing activities
if (SomeClass.IsClosingFlow){
if (isActivityInFlow()){
this.finish();
}
else{
// If we got here, and we're not in the flow anymore
SomeClass.IsClosingFlow = false;
}
}
この種のアプリケーション フローを管理するには、さまざまな方法があります。あなたにとってうまくいく可能性があり、非常に簡単な方法startActivityForResult()
の1つは、あるアクティビティから次のアクティビティに呼び出すときに使用することです. そして、最終的に完了したら、結果を設定して を呼び出すだけfinish()
です。onActivityResult()
その後、各アクティビティで、結果を設定してそれ自体を呼び出すように実装できますfinish()
。このようにして、いくつかのアクティビティを連鎖させてから、連鎖を開始した人に連鎖させることができます。