【发布时间】:2016-07-15 14:45:01
【问题描述】:
这是有问题的代码部分:
Intent intent = new Intent(MyGcmListenerService.this, CalcularHorariosDisponiblesComplejo.class);
intent.putExtra("idComplejo",idComplejoSeleccionado);
intent.putExtra("idCancha",idCanchaSeleccionada);
intent.putExtra("idUsuarioComplejo",idUsuarioComplejo);
intent.putExtra("idPais",idPais);
intent.putExtra("nombreComplejo", nombreComplejo);
intent.putExtra("dia",day);
intent.putExtra("mes",month);
intent.putExtra("anio",year);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
MyGcmListenerService.this,
m,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);//creamos la notificacion
NotificationCompat.Builder n = new NotificationCompat.Builder(MyGcmListenerService.this)
.setContentTitle(titulo)
.setSound(uri)
.setSmallIcon(R.drawable.notification_icon)
.setLargeIcon(bm)
.setStyle(new NotificationCompat.BigTextStyle().bigText("El usuario " + nombreOrigen + " " + mensaje))
.setContentIntent(resultPendingIntent)
.setAutoCancel(true);
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(m, n.build());
}
pendingIntent 效果很好,但我将 CalcularHorariosDisponiblesComplejo.class 更改为 AsyncTask。现在我这样称呼同一个类:
new CalcularHorariosComplejoAsyncTask(MyGcmListenerService.this, idComplejoSeleccionado, idCanchaSeleccionada, nombreComplejo, idUsuarioComplejo, idPais, String.valueOf(day),String.valueOf(month),String.valueOf(year)).execute();
现在我不能使用挂起的意图的问题,所以我尝试替换这样的东西但不起作用:
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
MyGcmListenerService.this,
m,
new CalcularHorariosComplejoAsyncTask(MyGcmListenerService.this, idComplejoSeleccionado, idCanchaSeleccionada, nombreComplejo, idUsuarioComplejo, idPais, String.valueOf(day),String.valueOf(month),String.valueOf(year)).execute(),
PendingIntent.FLAG_UPDATE_CURRENT);
如何从 PendingIntent 调用 Asynctask?
【问题讨论】:
-
你为什么不使用 IntentService 来代替?
-
@MiguelBenitez 我不知道,这是最好的解决方案吗?如果您认为是,请给出解决方案。谢谢
-
解决办法是
PendingIntent.getService() -
检查发布的代码。
标签: android android-asynctask android-pendingintent