如何通过单击通知关闭我的应用程序的任何活动?

时间:2013-10-08 08:50:32

标签: android notifications android-activity android-notifications android-notification-bar

当我点击通知时,请应用以下内容:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

在应用程序的所有“startActivity”中,我应用了下一个标志:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity我的通知执行以下操作: 调用活动“Splash”并称为“Main”。

Casulidad如果我在“主要”脉冲通知中,关闭电流(正常工作)。 但如果我在活动“新闻”中并且通知我,我有2个活动开放,新的“主要”和前“新闻”。

如何通过点击通知关闭我的应用程序的任何活动?

2 个答案:

答案 0 :(得分:6)

您可以在通知中设置PendingIntent,该内容将由broadcastReceiver中的Activity捕获。然后在活动的broadcastReceiver中,调用finish(); 这应该会关闭你的活动。

即。 把它放在你的活动中

BroadcastReceiver mReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        finish();
    }

};

这在onCreate()

IntentFilter filter = new IntentFilter("android.intent.CLOSE_ACTIVITY");
registerReceiver(mReceiver, filter);

然后,您的通知中的PendingIntent应该有"android.intent.CLOSE_ACTIVITY"的操作,并且为了您的活动包的安全性。

这是由

完成的
Intent intent = new Intent("android.intent.CLOSE_ACTIVITY");
PendingIntent pIntent = PendingIntent.getBroadcast(context, 0 , intent, 0);

然后在使用Notification.Builder构建通知时,使用setContentIntent(pIntent)将其添加到您的通知中。

答案 1 :(得分:0)

我使用了一个带有静态标志exitApp的单例,它在应用程序启动时为false,并且在从通知返回的活动中设置为true。

在所有活动的onResume()中检查此标志,如果为真,则活动将其称为finish()方法..

这样,即使通知被激活了一些活动,也会调用父活动的每个活动结束()和onResume(),反过来也会完成()直到mainActivity结束()和申请被终止。