你可以使用AlarmManager来设置停止通知的时间。在以下代码示例中,我们将设置一个定时任务,当到达指定的时间时,会触发一个通知:
首先,在AndroidManifest.xml文件中添加以下权限:
然后,在你的活动或服务中,使用以下代码来设置停止通知的时间:
// 获取AlarmManager实例
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// 创建一个PendingIntent,用于触发通知
Intent notificationIntent = new Intent(this, MyNotificationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, 0);
// 设置停止通知的时间为当前时间加上10秒钟
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
// 设置定时任务
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
最后,创建一个广播接收器(MyNotificationReceiver)来处理触发的通知:
public class MyNotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 处理触发的通知
// ...
}
}
这样,当到达指定的时间时,会触发MyNotificationReceiver中的onReceive方法,你可以在该方法中处理触发的通知。