为了连续播放30秒的闹钟声,我必须发出30次通知。但是,如果用户从通知池中删除通知,则进程需要退出循环?做这个的最好方式是什么?
for(int i ; i < 30; i++) {
notificationManager.notify(tag, NOTIFICATION_ID, notification);
Thread.sleep(1000);
}
答案 0 :(得分:0)
这回答了我的问题。 FLAG_INSISTENT重复播放声音,直到用户打开通知池。不需要'for'循环。
// turn on the alarm
notification.sound = soundUri;
notification.flags |= Notification.FLAG_INSISTENT;
// after 30 seconds turn off the alarm
new Handler().postDelayed(
new Runnable() {
@Override
public void run() {
notification.flags ^= Notification.FLAG_INSISTENT;
notificationManager.notify(tag, NOTIFICATION_ID,
notification);
}
}, 30000);