0

Androidランチャーのソースコードから、

if ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) !=
        Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) {
    //reset homescreen to default page
}

startActivityインテントにフラグFLAG_ACTIVITY_BROUGHT_TO_FRONTがない場合、ランチャーはホーム画面をデフォルトページにリセットします。

スタックの最上位で開始されているアクティビティのインスタンスがすでに存在する場合にのみ、フラグは設定されません。

ランチャーをだまして、別のアプリから起動したときに、スタックの一番上で既に実行されている(ホーム画面ページをリセットさせる)と思わせる方法はありますか?(ホームキーの押下からではありません)。

4

1 に答える 1

1

あなたの質問についての私の理解に従ってください。FLAG_ACTIVITY_NEW_TASKフラグが役立つと思います。文書によると:

このフラグを使用するときに、現在開始しているアクティビティに対してタスクがすでに実行されている場合、新しいアクティビティは開始されません。代わりに、現在のタスクは、最後の状態で画面の前面に表示されます。

そして、アクティビティのインスタンスがすでに実行されている場合。方法 :

protected void onNewIntent(Intent intent)

と呼ばれます。したがって、新しいインテントが来るたびに、このメソッドからホーム画面をリセットできます。

お役に立てば幸いです。

于 2012-11-07T01:59:19.160 に答える