我有一个活动A,它注册AlarmManager以触发另一个BroadcastReceiver B.当达到时间时,将调用B的onReceive(),并启动另一个活动C.当C启动时,A可能会关闭.
我的问题是:
– C不知道A中的pendingIntent,如何在C中调用alarmManager.cancel(pendingIntent)?
– 或者,我如何将pendingIntent从A传递到B到C?
请帮忙.
最佳答案 在我的应用程序中,我创建了一个静态方法,它返回了AlarmManager所需的PendingIntent,然后我可以从任何类调用它.如果您的PendingIntent在不同时间之间没有变化,则会调用它,这对您有用.例如,我有:
public static PendingIntent getSyncPendingIntent(Context context)
{
Intent i = new Intent(context, <classname>.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
return pi;
}
我可以从任何一个类中调用它来获得相同的PendingIntent.