アプリケーションには多くのアクティビティが存在する可能性があり、最後に起動されたアクティビティはスタックの最上位に留まり、押し戻すと現在のアクティビティが終了します。一連のアクティビティがあり、フローは次のとおりです。
A、B、C(1)、D、C(2)がある場合...アクティビティC(1)とC(2)は、アプリケーションのナビゲート中に起動されるアクティビティCの2つの異なるインスタンスです。アクティビティCのすべてのインスタンスをクリアすると、結果はC(2)を終了したときに、これらのスタックA、B、Dを残しておく必要があります。私は何をすべきか 。
IMP-これらのインスタンスを作成するのではなく、新しいタスクフラグでCを開始できたので、C(2)を終了しない限り、 C(1)をスタックに保持したいのですが、これらのインスタンスのUIと動作は異なります。
次のアプローチは好ましくありません。
初め
@Override
public void onBackPressed(){
super.onBackPressed();
Intent intent = new Intent(C(2).this , D.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
startActivity(intent);
}
これにより、スタックからすべてのアクティビティがクリアされ、アクティビティが再起動されます
2番
シングルトンクラスでアクティビティを追跡し、必要なフローを再起動します。ただし、開始するアクティビティが多数ある場合は、これに時間がかかります。
だから、パッケージマネージャーなどを使って問題を解決する解決策があるはずだと思いました。解決策をいただければ幸いです。