0

シングル タスクとして起動モードのアクティビティがあります。アクティビティは、ブロードキャスト レシーバーによってインテント フラグ Intent.FLAG_ACTIVITY_NEW_TASK によって起動されます。このアクティビティがホーム画面の上にあり、このアクティビティから moveTasktoBack(true) を呼び出すと、ホーム画面が表示されると予想されますが、ホーム画面ではなく、別のタスクのアクティビティ B が前面に表示されます。一連の操作は次のとおりです。

タスク B のアクティビティ B -> [ホーム ボタンを押す] -> ホーム画面 -> BroadCast Receiver でアクティビティ A を起動 -> アクティビティ A が moveTaskToBack(true) を呼び出します -> タスク B のアクティビティ B がフォアグラウンドになります。

タスク A (アクティビティ A) とタスク B (アクティビティ B) のタスク アフィニティを確認しましたが、それらは異なります。

このようなシナリオで、アクティビティがスタックの後ろに移動したときにホーム画面が表示されるようにするにはどうすればよいですか。

4

2 に答える 2

0

タスクをバックグラウンドに移動する代わりに、次のようにホーム画面を起動します。

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
于 2015-02-06T13:18:50.567 に答える