У меня есть вопрос, касающийся обработки намерений 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);
в) реагировать на события и что-то делать:
in onReceive(...)
if (MY_ACTION.equals(intent.getAction())
doSomething();
Когда я развертываю + добавляю виджет, он работает нормально.Однако через некоторое время - не уверен, что именно вызывает проблему, но, например, похоже, это влияет на телефонный звонок - я больше не получаю никаких уведомлений в onReceive ().
Я совершенно озадачен, почему этоэто тот случай.Может кто-нибудь указать мне правильный способ сделать это?
Спасибо!
Том