0
インテントをサービスからアクティビティに送信する際に問題が発生します。ここでは、コードです:サービスから送信されたインテントを受信する方法
Intent intent = new Intent(context,
MessagingActivity.NewMessageReceiver.class);
intent.setAction(XMPPService.NEW_MESSAGE);
intent.putExtra("MESSAGE", body);
intent.putExtra("FROM", from);
context.sendBroadcast(intent);
コンテキストは(それが活動の内部クラスです)サービス レシーバーコードです:
public class NewMessageReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(XMPPService.NEW_MESSAGE))
{
String message = intent.getStringExtra("MESSAGE");
String from = intent.getStringExtra("FROM");
// TODO: add screen switch
addMessage(true, from, message);
}
}
}
Androidのマニフェストエントリ:
<receiver
android:name=".MessagingActivity.NewMessageReceiver">
<intent-filter>
<action android:name="com.someapp.XMPPService.NEW_MESSAGE"/>
</intent-filter>
</receiver>
問題があることですインテントが送信されても、onReceive()メソッドは呼び出されません。
ありがとう、Ivan。 com.someapp.MessagingActivity.NewMessageReceiver`:
でこの
を試してみてください。なぜなら、NewMessageReceiverは内部クラスなのですか? –
Activtiyに受信者を登録するだけです。 – Rasel
更新された回答を参照してください – Rasel