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