android – 如何停止AlarmManager

我有一个活动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.

点赞