我已经在Android应用中实现了OneSignal推送通知。我将发送带有URL的推送通知作为附加到它们的有效负载。该URL发送的意图可以由我的应用程序或浏览器的其他活动打开。因此,当我的应用程序的某些活动处于前台状态并且我选择在我的应用程序中打开通知时,我的应用程序有2个实例。因此,即使用户在当前最顶部的活动中轻按“退出”,仍会保留已打开的活动。基本上,用户必须退出我的应用两次(如果这种情况持续发生,则可能需要多次退出)。
那么,当用户点击通知(然后选择在我的应用而不是浏览器中打开通知)然后继续进行操作时,有什么方法可以完成前台的活动??
我还尝试了所有启动模式:normal
,singleTop
,singleTask
和singleInstance
,它们均产生了设计目的,但没有一个可以适合我的情况。
我不知道我应该在此处包含哪些代码。
如果无法完成,是否有办法将我的应用程序的所有活动(无论从何处启动)都启动到同一实例中?
答案 0 :(得分:2)
为此,您将必须使用这样的活动标志从通知中开始活动
yourintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
它将清除前台活动实例,并在顶部创建新的活动实例。