有没有办法让Notification
的发件人知道何时将Notification
发送给接收器?即某些方法可以检查用户是否点击了给定的Notification
。Android:如何检查是否发送了待处理的通知?
我想要完成的是:我的Service
发送一个通知PendingIntent
启动ActivityA。但是,如果用户在未点击通知的情况下启动ActivityA,我希望该服务取消Notification
并将直接意向发送给活动A
有没有办法让Notification
的发件人知道何时将Notification
发送给接收器?即某些方法可以检查用户是否点击了给定的Notification
。Android:如何检查是否发送了待处理的通知?
我想要完成的是:我的Service
发送一个通知PendingIntent
启动ActivityA。但是,如果用户在未点击通知的情况下启动ActivityA,我希望该服务取消Notification
并将直接意向发送给活动A
您的流程对我来说没有多大意义。如果用户打开ActivityA,为什么要打开另一个ActivityA实例?我不确定还有什么“向ActivityA发送直接Intent
”意味着什么。我认为在所有情况下,ActivityA都会取消Notification
,并在所有情况下向服务部门提供最新数据。
如果这种模式不适合你,那么让你的Notification
使用服务PendingIntent
。请注意,用户点击了Notification
,然后让服务启动ActivityA。这给用户带来了同样的效果(点击通知,获取ActivityA),但是你的服务发现了有关点击的信息。
或者,在活动PendingIntent
中使用Intent
,该活动与ActivityA通常以其开头的Intent
不同。有ActivityA告诉服务,“哟,我在所有情况下都会给我一个Intent
,哟”。如果服务提出了Notification
并且ActivityA指示它从常规Intent
开始,则请告知ActivityA执行某些操作。如果服务提出了Notification
,并且ActivityA指示它开始于Notification
的Intent
,请执行其他操作。
要澄清,如果ActivityA已打开,服务将不会打开另一个ActivityA实例(假设它为StartActivity意图设置正确的标志)。 当ActivityA已处于活动状态时,“直接意图”是指sendBroadcast()到ActivityA。 通过服务服务“注意到”用户点击了通知,是否将PendingIntent设置为服务本身? – theactiveactor 2010-08-10 02:32:51
“A”直接意图“当ActivityA已处于活动状态时表示sendBroadcast()给ActivityA”活动不听广播。不过,一个活动可以动态注册一个BroadcastReceiver。 “通过服务服务”注意到用户点击了通知,是否将PendingIntent设置为服务本身?“我不知道这句话的意思,对不起。 – CommonsWare 2010-08-10 12:25:57