web-dev-qa-db-ja.com

活動を開始する意図-ただし、前面に出さない

説明:

  • アクティビティ[〜#〜] a [〜#〜]は表示されます(またはバックグラウンドで)
  • インテント[〜#〜] i [〜#〜]は、貴重なエクストラを含むブロードキャストによって受信され、エクストラを新しいインテントに渡しますI2開始に使用されますアクティビティ[〜#〜] a [〜#〜]
  • 結果:持参しないアクティビティを前面にifアクティビティがバックグラウンドで実行されます。

コード:

Intent I2= new Intent(context, MyActivity.class); 
I2.putExtra(..
I2.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); // | Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(I2);

注:マニフェストに「Android:taskAffinity」を追加していません。知っておくべきだと思いました

25
pulancheck1988

アクティビティをバックグラウンドにしたい場合は、oncreate of activityにこの行を追加します

moveTaskToBack(true);
10
vipin

この行をonCreate()メソッドで使用できます。

moveTaskToBack(true);
6
Anand M Joseph

バックグラウンドでActivityを開始したくない。あなたがしたいことをするためのより良い方法があります。たとえば、ActivityレジスタにブロードキャストIntentを受信させることができます。バックグラウンドであってもonReceive()の呼び出しを取得します。 Activityがバックグラウンドにあるかどうかを判断するには、変数をonPause()trueに、onResume()falseに設定します。 。次に、onReceive()で、変数がtrueの場合、バックグラウンドにいます。

3
David Wasser