サービスからブロードキャストされたアクティビティ内のメッセージを受信するために、BroadcastReceiverを使用して多くの投稿があります。私は何十もありましたが、それをすべてまとめているものは見つかりませんでした。結論は、放送を受信するために私の活動を得ることができません。ここで私は今までにやったものだ:End to end BroadcastReceiverリンク
サービスクラスの放送:
Context context = this.getApplicationContext();
Intent intentB2 = new Intent(context, StationActivity.AudioReceiver.class);
intentB2.putExtra("Track", mSongTitle);
this.sendBroadcast(intentB2);
Log.i(TAG, "Broadcast2: " + mSongTitle);
Activityクラスの宣言:
public String INCOMING_CALL_ACTION = "com.example.android.musicplayer.action.BROADCAST";
活動クラスのインラインBroadcastReceiver:
public class AudioReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
// Handle receiver
Log.i(TAG, "Inner BroadcastReceiver onReceive()");
String mAction = intent.getAction();
if(mAction.equals(INCOMING_CALL_ACTION)) {
Log.i(TAG, "Inner BroadcastReceiver onReceive() INCOMING_CALL_ACTION");
}
}
};
Androidのマニフェスト受信機宣言:
<receiver android:name=".StationActivity.AudioReceiver">
<intent-filter>
<action android:name="com.example.android.musicplayer.action.BROADCAST" />
</intent-filter>
</receiver>
何が欠けていますか?前もって感謝します。
ありがとうございます。どちらの回答も、サービスクラスが自分の欠点となっていたアクションを適切に設定することに重点を置いていました。何らかの理由で私はregisterReceiver()ピースがサービスで発生すると思ったが、私はそうは思わなかった。今すぐ動作します。 – Jslmns71