У меня проблема с получением намерения, отправленного виджетом как 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
Я также попытался добавить фильтр намерений (сДействие MY_ACTION) для манифестации файла в MyService, но это вызывает вызов метода onStartCommand MyService.И это не то, что я хочу.Мне нужно вызвать метод onReceive mIntentReceiver.