我有一个关于 AppWidget 意图处理的问题。我有一个可点击的小部件,点击时我想向 AppWidgetProvider 本身发送一个意图以进行进一步处理。
问题:我最初在 onReceive() 中收到意图,但过了一段时间(不确定是什么原因造成的),onReceive() 不再被调用。
我有以下代码,全部在 MyWidgetProvider 扩展 AppWidgetProvider。
a) 注册接收广播:
in onEnabled(...):
context.getApplicationContext().registerReceiver(this, new IntentFilter(MY_ACTION));
b)设置在点击时触发的意图:
in onUpdate(...)
Intent intent= new Intent(MY_ACTION);
PendingIntent pendingIntent= PendingIntent.getBroadcast(context, 0/*notusedanyway*/, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.widget_root, pendingIntent);
c) 对事件做出反应并做某事:
in onReceive(...)
if (MY_ACTION.equals(intent.getAction())
doSomething();
当我部署 + 添加一个小部件时,它工作正常。然而,过了一会儿——不确定究竟是什么导致了问题,但例如一个电话似乎会影响它——我不再在 onReceive() 中收到任何通知。
我完全被难住了为什么会这样。有人可以向我指出这样做的正确方法吗?
谢谢!
汤姆