单击通知时如何关闭我的应用程序?

时间:2013-07-18 07:08:03

标签: android notifications android-notifications android-launcher

我创建了通知,当您点击通知时会执行startActivity。 这非常有效,特别是当我的应用程序尚未启动时。

我遇到的问题是当我打开通知时,因为上一个活动仍处于打开状态。

我的意图是当您点击通知关闭当前应用程序时,它只包含来自通知的新呼叫。

我尝试在“AndroidManifest”中使用“android:launch =”和PendingIntents上的标志显示,但我还没有成功运行它。

有任何帮助吗?感谢

修改 我的申请开始如下:

SplashScreen.class - > Main.class(是一个TabActivity)

当我点击通知时,我会执行以下操作: SplashScreen.class - > Main.class(是一个TabActivity)

但是如果我的应用程序已经启动并且我在通知上发出警告,那么我有:

新 - SplashScreen.class - > Main.class(是TabActivity)(当前) 老。以下仍然在Main.class上面打开

1 个答案:

答案 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活动时,如果它已经在堆栈中,它将被置于顶部,堆栈上方的所有其他活动将被清除