我在创建一个简单的Android应用程序,创建了一个通知。
现在,如果用户在特定时间后没有响应,我想删除通知
这意味着我想在五分钟后删除通知
您需要的是Alarmmanager和notificationmanger的组合。
注册将在5分钟内调用服务的警报管理器,并在服务实现中使用NotificationManager.cancel。
报警服务样本是here。我想你知道使用Notification Manager。
目前正确的解决方案可能是使用:
AlarmManager更常用于复杂的服务,当应用程序关闭时,必须在后台运行。您还可以在Handler中使用经典的Java Runnable来创建一个简单的小线程。
Handler h = new Handler();
long delayInMilliseconds = 5000;
h.postDelayed(new Runnable() {
public void run() {
mNotificationManager.cancel(id);
}
}, delayInMilliseconds);
另见:
Clearing notification after a few seconds
您也可以使用TimerTask-Class。
NotificationCompat.Builder notification = new NotificationCompat.Builder(context)
.setSmallIcon(Util.getNotificationIcon(context))
.setContentTitle(new SessionManager().getDomainPreference(context))
.setAutoCancel(true)
.setOngoing(false)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setShowWhen(false)
.setContentText(summaryText)
.setTimeoutAfter(3000) // add time in milliseconds
.setChannelId(CHANNEL_ID);