1

在我的应用程序中,我使用重复的 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;
}

如果我在运行应用程序后不久尝试取消计时器,这很好用;但是如果我尝试在它运行一天后取消它,则不会出现错误,但计时器没有停止并继续运行。难道我做错了什么?谢谢!

4

0 回答 0