4

Android:BroadcastReceiverからのアプリケーション/アクティビティの再開方法私の手順は、次のされている場合は

  1. 起動アクティビティA - >アクティビティB
  2. 押して 'ホーム' ボタン
  3. アプリケーションを再度クリックします。

結果: 'アクティビティB' は、(それがを再開する)までを示しています。

  1. 起動アクティビティA - > B活動
  2. 押して '戻る' ボタン
  3. アプリケーションを再度クリックします。

結果: '活動A' は(それ再起動)までを示しています。

私はBroadcastReceiverから全く同じことをしたいと思います。

  1. 起動アクティビティA - > B活動
  2. 押して 'ホーム' ボタン
  3. BroadcastReceiverはブロードキャストを受信し、アプリケーションを「再開」します。

私の予想される結果:「アクティビティB」が表示されます。

私はBroadcastReceiverから全く同じことをしたいと思います。

  1. 起動アクティビティA - > B活動
  2. 押して '戻る' ボタン
  3. BroadcastReceiverはブロードキャストを受信し、アプリケーションを再起動します。

現在の結果:「アクティビティA」が表示されます。

次のコードは、私が期待して何をしていません。

public void onReceive(Context context, Intent intent) { 
     Intent i = new Intent(context, ActivityA.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
    } 

は、私はまた、「Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY」が、運を試してみました。

+0

を次のように自分の意思Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

Intent.FLAG_ACTIVITY_NEW_TASKにこの

セットフラグがあなたが活動のdidnを意味:

これは、仕事をします新しいタスクフラグでアクティビティAを開始した後に表示されませんか? – dreamtale

+0

とにかく、 'singleTask'と' FLAG_ACTIVITY_NEW_TASK'を試してみてください。 – dreamtale

+0

いいえ、「ホーム」ボタンが押された場合に「アクティビティB」が表示されます。 – jclova

答えて

4

私のおかげで、私はそれを働かせました!

あなたが提供してくれた他の回答ありがとうございますが、私が探していたものではありませんでした。

Intent i = getPackageManager().getLaunchIntentForPackage("com.your.package.name"); 
i.setFlags(0); 
i.setPackage(null); 
startActivity(i); 
+0

あなたの問題が解決したことを知ってうれしいです。あなた自身のアンサーを受け入れる – Sameer

+0

このアンドロイドソースファイルのこのコメントは、ActivityStack.javaが理由を説明します://この場合、タスクのルートアクティビティ //を別のインテントで起動しています。我々は //上に新しいインスタンスを開始する必要があります。 – satur9nine

+0

この回答ありがとうございます! @私はこれを一日中探しています@。なぜ私はIntent.FLAG_ACTIVITY_NEW_TASKを使った解決法が機能しないのか分かりません。それは公式ドキュメントで指定されています! http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK 回答がうまくいかない理由を説明するために気をつけますか? –

4

チェックアウト

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_NEW_TASK); 
関連する問題