在我的应用程序中,我使用重复的AlarmManager。我为每个计时器创建了一个类;我已经宣布它们是静态的,因为我需要在我的应用程序的不同类中取消该计时器。
以下是代码:
public class TimerSyncOff {
public static final String intentExtra = "SyncOff";
public static void SetAlarm(Context context)
{
AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);
long trigger = 800000;
long interval = 900000;
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, trigger,interval, pi);
}
public static void Stop(Context context)
{
try{
AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);
am.cancel(pi);
}catch (Exception e){}
}
private static Intent getIntent(){
Intent i = new Intent(intentExtra);
return i;
}
如果我在运行应用程序后不久尝试取消计时器,这可以正常工作;但如果我尝试取消它,就像它运行一天后,没有错误被播出,但计时器没有停止并继续运行。 难道我做错了什么?谢谢!