6

アプリケーションには多くのアクティビティが存在する可能性があり、最後に起動されたアクティビティはスタックの最上位に留まり、押し戻すと現在のアクティビティが終了します。一連のアクティビティがあり、フローは次のとおりです。

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番

シングルトンクラスでアクティビティを追跡し、必要なフローを再起動します。ただし、開始するアクティビティが多数ある場合は、これに時間がかかります。

だから、パッケージマネージャーなどを使って問題を解決する解決策があるはずだと思いました。解決策をいただければ幸いです。

4

1 に答える 1