ホーム>source

アクティビティスタックがあります

ウィズウィズ

A>B>C>D>E>F からF Αctivity を開始したいCをフレッシュから再度閉じ、すべてのC、D、E、Fアクティビティを閉じて、新しい Αctivity スタックは:

ウィズウィズ (フレッシュアクティビティとしてのC)

Αctivity を使ってみたウィズウィズへCが A>B>C を再起動していませんC. singleTask を再開していますC

Activity
あなたの答え
  • 解決した方法 # 1

    startActivityForResult を使用する   C、D、E、Fアクティビティを開始する

    <前>ウィズウィズ

    Fアクティビティ(Cアクティビティを再起動する場所)の終了中にこのメソッドを呼び出します

    <前>ウィズウィズ

    EおよびDアクティビティで

    <前>ウィズウィズ

    Cアクティビティ

    <前>ウィズウィズ

  • 解決した方法 # 2

    最後に、私は自分の質問に答えています。誰かが同じ問題に直面している場合は、答えを参照できます。

    私が達成したかったことについて多くのことを調べたので、これに遭遇した場合、アクティビティCを再起動することはできません。そのため、アクティビティCにlaunchmode singleTaskを追加して解決しました。アクティビティFIから、アクティビティCを再度起動し、アクティビティCでオーバーライドされたメソッドをonNewIntent()で実行したいタスクを実行します。

    public static void start(@NonNull Context context, @NonNull Intent intent) { context.startActivityForResult(intent, REQUEST_CODE); }

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python 3.x - DynamoDBテーブルのアイテムをどのように循環できますか?