我创建了通知,当您点击通知时会执行startActivity。 这非常有效,特别是当我的应用程序尚未启动时。
我遇到的问题是当我打开通知时,因为上一个活动仍处于打开状态。
我的意图是当您点击通知关闭当前应用程序时,它只包含来自通知的新呼叫。
我尝试在“AndroidManifest”中使用“android:launch =”和PendingIntents上的标志显示,但我还没有成功运行它。
有任何帮助吗?感谢
修改 我的申请开始如下:
SplashScreen.class - > Main.class(是一个TabActivity)
当我点击通知时,我会执行以下操作: SplashScreen.class - > Main.class(是一个TabActivity)
但是如果我的应用程序已经启动并且我在通知上发出警告,那么我有:
新 - SplashScreen.class - > Main.class(是TabActivity)(当前) 老。以下仍然在Main.class上面打开
答案 0 :(得分:0)
如果您需要在单击通知时打开SplashScreen.class,请尝试创建这样的意图:
Intent intent = new Intent(myContext, SplashScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
正如Intent.FLAG_ACTIVITY_CLEAR_TOP
的文档所述如果设置,则正在启动的活动已在运行中 当前任务,然后而不是启动它的新实例 活动,其上的所有其他活动将被关闭 这个意图将作为一个传递到(现在在顶部)旧活动 新的意图。
例如,考虑一个由活动组成的任务:A,B,C,D。 如果D调用带有解析为的Intent的startActivity() 活动B的组成部分,然后C和D将完成,B接收 给定的Intent,导致堆栈现在为:A,B。
上例中活动B的当前运行实例将会 要么接收你从这里开始的新意图 onNewIntent()方法,或者自己完成并重新使用new 意图。如果它已宣布其启动模式为“多个”( 默认情况下,您没有设置FLAG_ACTIVITY_SINGLE_TOP 意图,然后它将完成并重新创建;所有其他发射 模式或如果设置了FLAG_ACTIVITY_SINGLE_TOP,那么此Intent将是 传递给当前实例的onNewIntent()。
因此,当您使用此标志启动SplashScreen活动时,如果它已经在堆栈中,它将被置于顶部,堆栈上方的所有其他活动将被清除