【发布时间】:2011-09-21 14:39:28
【问题描述】:
我在接收小部件作为 PendingIntent 发送的意图时遇到问题:
intent = new Intent(MyService.MY_ACTION);
pendingIntent = PendingIntent.getService(this, 0, intent, 0);
views.setOnClickPendingIntent(R.id.button, pendingIntent);
我在 MyService 中添加了一个广播接收器:
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.d(TAG, "Intent command received");
String action = intent.getAction();
if( MY_ACTION.equals(action))
{
doSomeAction();
}
}
};
最后我在服务的 onCreate 方法中注册了这个接收器:
IntentFilter filter = new IntentFilter();
filter.addAction(MY_ACTION);
registerReceiver(mIntentReceiver, filter);
现在当 MyService 正在运行并单击按钮时,我得到:
09-21 14:21:18.723: WARN/ActivityManager(59): Unable to start service Intent { act=com.myapp.MyService.MY_ACTION flg=0x10000000 bnds=[31,280][71,317] }: not found
我还尝试向 MyService 的清单文件添加一个意图过滤器(使用 MY_ACTION 操作),但这会导致调用 MyService 的 onStartCommand 方法。这不是我想要的。我需要调用mIntentReceiver的onReceive方法。
【问题讨论】:
标签: android service action broadcastreceiver android-pendingintent