1

だから私はアクティビティに何かを返すためにこの問題を抱えていますが、問題は方法がわからないことです。いくつかのスレッドを読みましたが、少し曇っていて混乱しています。あなたの誰かがこれについていくつかの光を当てることができます. レシーバー (BroadcastReciever) からアクティビティに何かを返したいだけです。アクティビティを開始できるというスレッドを読みましたが、問題は、インテントに余分なものをアクティビティに渡すことが許可されている場合、少し混乱することです。皆様からの情報提供に感謝いたします。

4

2 に答える 2

2

可能な重複回答https://stackoverflow.com/a/6857648/760489

ブロードキャストレシーバーからアクティビティを開始するときに意図的にフラグを設定することで、この方法を実行できます

public void onReceive(Context context, Intent intent){
    Intent i = new Intent(context, DestinationActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    i.putExtra("PATH", path);
    context.startActivity(i);
}

FLAG_ACTIVITY_SINGLE_TOP は、アプリが既に開いている場合に再度開かないようにします。これは、最初に YourActivity を開いた「古い」インテントが再利用され、余分な値が含まれないことを意味します。YourActivity の onNewIntent() という別のメソッドでそれらをキャッチする必要があります。

トップリンクから完全な回答を確認してください

于 2012-09-24T11:36:16.990 に答える
1

これを試してください:

public void onReceive(Context context, Intent intent)
{

    Intent i = new Intent(context, DestinationActivity.class);
    i.putExtra("PATH", path);
    context.startActivity(i);
}
于 2012-09-24T08:47:09.450 に答える