Я зарегистрировал получателя для намерения ACTION_TIME_TICK динамически из виджета. Но через 10/15 минут произошел сбой приложения и устройство перезагрузилось. Ниже приведен код:
@Override
public void onUpdate(Context context) {
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_TIME_TICK);
context.getApplicationContext().registerReceiver(mReceiver, intentFilter);
}
Мой широковещательный приемник, с помощью которого я обновляю свой виджет:
public class WReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Toast.makeText(context, "[onReceive]", 5).show();
AppWidgetManager widgetMgr = AppWidgetManager.getInstance(context);
int [] widgetIds = widgetMgr.getAppWidgetIds(new ComponentName(context, WidgetManager.class));
//
for(int appWidgetId : widgetIds) {
WidgetManager.updateAppWidget(context, widgetMgr, appWidgetId, "World Clock");
}
}
}
Это работает только в течение 15-20 минут. Должен ли я отменить регистрацию получателя, если так, где я должен зарегистрироваться в виджете?