2

Android: new Intent() は android:launchMode="singleTop" で新しいインスタンスを開始します

上記のリンクに従って動作するように単一のトップを取得しましたが、インテントに「エクストラ」を入れて、元のアクティビティで機能を実行するのに苦労しています..これは可能ですか?

Intent I= new Intent(context, away.class);
I.putExtra("number",  number);
I.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |       Intent.FLAG_ACTIVITY_SINGLE_TOP);

このスニペットは私の放送受信機からのもので、私のメインクラスを参照しています..私のメインクラスでは私のコードはそうです..

Intent I = getIntent();
int number = I.getIntExtra("number", -1);

だから私の質問は次のとおりです..どうすれば、メインのアクティビティで、返信した数値を評価し、レシーバークラスが起動したときに関数を起動できますか?

4

1 に答える 1

2

onNewIntent をオーバーライドして、余分なものを取得する必要があります。

You have to override onNewIntent and get the extra there.  

@Override
protected void onNewIntent(Intent intent)
{
    super.onNewIntent(intent);


    int number = intent.getIntExtra("number", -1);
}  

放送受信機で

Intent I = new Intent(context, away.class);
I.putExtra("number",  number);
Log.d("here", "number = " + number);
I.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(I);
于 2013-03-27T21:17:19.570 に答える