【发布时间】:2011-07-20 10:18:02
【问题描述】:
我在将 Intent 从 Service 发送到 Activity 时遇到了一些问题。代码如下:
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>
问题是虽然发送了Intent,但是没有调用onReceive()方法。
谢谢,伊万。
【问题讨论】:
标签: android service android-activity broadcastreceiver