2010-08-08 78 views
0

有没有办法让Notification的发件人知道何时将Notification发送给接收器?即某些方法可以检查用户是否点击了给定的NotificationAndroid:如何检查是否发送了待处理的通知?

我想要完成的是:我的Service发送一个通知PendingIntent启动ActivityA。但是,如果用户在未点击通知的情况下启动ActivityA,我希望该服务取消Notification并将直接意向发送给活动A

回答

1

您的流程对我来说没有多大意义。如果用户打开ActivityA,为什么要打开另一个ActivityA实例?我不确定还有什么“向ActivityA发送直接Intent”意味着什么。我认为在所有情况下,ActivityA都会取消Notification,并在所有情况下向服务部门提供最新数据。

如果这种模式不适合你,那么让你的Notification使用服务PendingIntent。请注意,用户点击了Notification,然后让服务启动ActivityA。这给用户带来了同样的效果(点击通知,获取ActivityA),但是你的服务发现了有关点击的信息。

或者,在活动PendingIntent中使用Intent,该活动与ActivityA通常以其开头的Intent不同。有ActivityA告诉服务,“哟,我在所有情况下都会给我一个Intent,哟”。如果服务提出了Notification并且ActivityA指示它从常规Intent开始,则请告知ActivityA执行某些操作。如果服务提出了Notification,并且ActivityA指示它开始于NotificationIntent,请执行其他操作。

+0

要澄清,如果ActivityA已打开,服务将不会打开另一个ActivityA实例(假设它为StartActivity意图设置正确的标志)。 当ActivityA已处于活动状态时,“直接意图”是指sendBroadcast()到ActivityA。 通过服务服务“注意到”用户点击了通知,是否将PendingIntent设置为服务本身? – theactiveactor 2010-08-10 02:32:51

+0

“A”直接意图“当ActivityA已处于活动状态时表示sendBroadcast()给ActivityA”活动不听广播。不过,一个活动可以动态注册一个BroadcastReceiver。 “通过服务服务”注意到用户点击了通知,是否将PendingIntent设置为服务本身?“我不知道这句话的意思,对不起。 – CommonsWare 2010-08-10 12:25:57

相关问题