0

シナリオ:

  • ランチャー アイコンをクリックすると、アクティビティ A (マニフェストの MAIN と LAUNCHER) が起動します。

  • 次に、アクティビティ B を起動します。

  • その後、アクティビティ B がメイン アプリのアクティビティ C (マニフェストの MAIN と singleTask) を起動します。

私が必要とする行動:

アクティビティ C が表示されてホーム キーが押されると、次にランチャー アイコンが押されたときに、アクティビティ C に直接スキップしたいと思います (アクティビティ A (およびその結果 B) は再度表示されません)。

A から FLAG_ACTIVITY_CLEAR_TOP を使用してみましたが、起動画面でアイコンを押すたびにアクティビティ A が表示されます。

ランチャーからシングルタスク アクティビティ C を表示できますか?

更新: A から FLAG_ACTIVITY_CLEAR_TOP を使用し、finish() を呼び出さないと、ランチャー アイコンを押すとアクティビティ B が表示される状況が作成されます。ただし、B から FLAG_ACTIVITY_CLEAR_TOP の使用を適用し、finish() を呼び出さないことも状況を解決しません。ランチャー アイコンを押しても A は表示されませんが、B は表示されます。

4

1 に答える 1

0

ここで同様のシナリオを参照してください。

あなたの場合、アプリが以前に起動されたかどうかを表す値を保持する SharedPreference を持つ同様のアプローチを使用することをお勧めします。

ここでやろうとしていることのロジックを含む単純なアクティビティを作成します。そのアクティビティ (「pre-A」アクティビティ) の onResume() メソッドで、アプリが以前に実行されたかどうかを表す設定の値を確認します。

以前に実行されていない場合は、アクティビティ A にインテントを起動します。これにより、後続の B および C アクティビティが呼び出されます。それ以外の場合は、アクティビティ C へのインテントを起動します。

マニフェストで新しい「Pre-A」アクティビティを定義することを忘れないでください。

于 2013-08-08T17:19:41.767 に答える