AppWidget PendingIntent no funciona después de reiniciar el Lanzador

Tengo un AppWidget con 2 intentos pendientes. Ellos trabajan la mayoría del tiempo, pero después de un tiempo dejan de responder. Lo único que he podido señalar es que están lisiados después de un reinicio del Lanzador, es decir, uso el Lanzador Pro, ya veces violín con la configuración y tiene que reiniciarlo. Después de que no funcionan en absoluto.

Estos son mis onRecieve() y onUpdate() :

  public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); String action = intent.getAction(); if(action.equals("android.tristan.widget.digiclock.CLICK")) { PackageManager packageManager = context.getPackageManager(); Intent alarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER); String clockImpls[][] = { {"HTC Alarm Clock", "com.htc.android.worldclock", "com.htc.android.worldclock.AlarmClock" }, {"Standar Alarm Clock", "com.android.deskclock", "com.android.deskclock.AlarmClock"}, {"Froyo Nexus Alarm Clock", "com.google.android.deskclock", "com.android.deskclock.DeskClock"}, {"Moto Blur Alarm Clock", "com.motorola.blur.alarmclock", "com.motorola.blur.alarmclock.AlarmClock"} }; boolean foundClockImpl = false; for(int i=0; i<clockImpls.length; i++) { String vendor = clockImpls[i][0]; String packageName = clockImpls[i][1]; String className = clockImpls[i][2]; try { ComponentName cn = new ComponentName(packageName, className); ActivityInfo aInfo = packageManager.getActivityInfo(cn, PackageManager.GET_META_DATA); alarmClockIntent.setComponent(cn); foundClockImpl = true; } catch (NameNotFoundException e) { Log.d(LOGTAG, "Error," + vendor + " does not exist"); } } if (foundClockImpl) { Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); vibrator.vibrate(50); final RemoteViews views = new RemoteViews(context.getPackageName(), layoutID); views.setOnClickPendingIntent(R.id.TopRow, PendingIntent.getActivity(context, 0, new Intent(context, DigiClock.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK), PendingIntent.FLAG_UPDATE_CURRENT)); AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views); alarmClockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(alarmClockIntent); } } } public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); context.startService(new Intent(UpdateService.ACTION_UPDATE)); context.startService(new Intent(context, ScreenUpdateService.class)); final int Top = appWidgetIds.length; final int Bottom = appWidgetIds.length; for (int i=0; i<Top; i++) { int[] appWidgetId = appWidgetIds; final RemoteViews top=new RemoteViews(context.getPackageName(), layoutID); Intent clickintent=new Intent("android.tristan.widget.digiclock.CLICK"); PendingIntent pendingIntentClick=PendingIntent.getBroadcast(context, 0, clickintent, 0); top.setOnClickPendingIntent(R.id.TopRow, pendingIntentClick); appWidgetManager.updateAppWidget(appWidgetId, top); } for (int i=0; i<Bottom; i++) { int[] appWidgetId = appWidgetIds; RemoteViews bottom=new RemoteViews(context.getPackageName(), layoutID); Intent clickintent=new Intent("android.tristan.widget.digiclock.CLICK_2"); PendingIntent pendingIntentClick=PendingIntent.getBroadcast(context, 0, clickintent, 0); bottom.setOnClickPendingIntent(R.id.BottomRow, pendingIntentClick); appWidgetManager.updateAppWidget(appWidgetId, bottom); } } 

He leído acerca de poner las intenciones en un servicio, pero he intentado y fallado. Cualquier ayuda es apreciada.

One Solution collect form web for “AppWidget PendingIntent no funciona después de reiniciar el Lanzador”

Como he escrito aquí sólo debe producir una única instancia de RemoteView.

  • Evento de clic transferido a la siguiente Actividad iniciada
  • ¿Es posible escribir un bucle for para asignar a los oyentes a muchos botones con la misma función donde se utilizan los últimos?
  • Aceptar eventos de clic en RelativeLayout
  • Evite que EditText consuma un evento de clic
  • Android MediaPlayer Singleton
  • Usando onClick en TextView con texto seleccionable - cómo evitar doble clic?
  • Android: No se puede obtener un encabezado / pie de lista ListView que se puede hacer clic
  • distinguir un golpe y hacer clic en android (pasar el evento a otra vista si es un golpe)
  • Cómo poner un oyente onclick dentro de un servicio
  • Cómo hacer clic o tocar en un texto de TextView
  • Onlclick oyente no está funcionando correctamente ..?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.