您可以使用AlarmManager的cancel()方法来停止setRepeating()方法设置的重复定时任务。下面是一个示例代码:
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
public class AlarmHelper {
private static final int ALARM_REQUEST_CODE = 1001;
public static void setRepeatingAlarm(Context context, long intervalMillis, long stopAfterMillis) {
// 创建Intent
Intent intent = new Intent(context, YourBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, ALARM_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// 获取AlarmManager实例
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// 设置定时任务
// 设置重复任务,从当前时间开始,每隔intervalMillis毫秒执行一次
// 注意:这里使用的是setRepeating()方法
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), intervalMillis, pendingIntent);
// 在stopAfterMillis毫秒后停止定时任务
// 使用Handler.postDelayed()方法来延迟执行取消任务的操作
new android.os.Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 取消定时任务
alarmManager.cancel(pendingIntent);
}
}, stopAfterMillis);
}
}
您需要替换代码中的"YourBroadcastReceiver"为您自己定义的广播接收器类名。然后,您可以调用setRepeatingAlarm()方法来设置重复定时任务,并在指定时间后停止工作。