Buuenas,
Estoy queriendo modificar la base de datos de mi aplicación a través de los click que se realicen en las notificaciones. Sin que el usuario tenga que volver a intereactuar con la aplicación.
El caso es que lo que más me ha cuadrado es el Service.
Mi implementación:
por un lado la actividad que crea las notificaciones: MyActivity.class
....
Intent cIntent = new Intent(MyActivity.this, MyService.class);
cIntent.putExtra("task", task,getId());
PendingIntent pcIntent = PendingIntent.getService(ctx, 0, cIntent,0);
NotificationCompat.Builder myBuilder= new NotificationCompat.Builder(ctx)
.setSmalIcon()
.setWhen()
.addAction(R.drawable.myicon, pcIntent);
Intent resultIntent = new Intent (ctx. MenuActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(ctx);
stackBuilder.addParentStack(MenuActivity.class);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
myBuilder.setContentIntent(resultPendingIntent);
NotificationManager myManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
myManager.notify(notif.getID(), myBuilder.build());
Por otro lado el Service:
public class MyService extends IntentService
protected void onHandleIntent(Intent intent)
{
Context ctx = getApplicationContext();
SQLiteClass dbTask = new SQLiteClass(ctx);
Task task = intent.getIntExtra("task");
actualizaDbTask(dbTask, task);
}
Con el debug el método onHandleIntent no se llega a usar nunca cuando se hace click sobre el icono dentro de la notificación. ¿A qué podría deberse? ¿Es esta la mejor solución?