2

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

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我通知执行以下操作: 呼叫活动“飞溅”并被称为“主”。

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

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

回答

6

您可以在broadcastReceiver中的Activity中捕获的通知中设置PendingIntent。然后在活动的broadcastReceiver中,请拨打finish(); 这应该会关闭您的活动。

即 在onCreate()

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

将这个在您的活动

BroadcastReceiver mReceiver = new BroadcastReceiver() { 

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

}; 

这一点,那么你在通知的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)添加到您的通知。

+0

谢谢,但如何添加“android.intent.CLOSE_ACTIVITY”意图/ pendingIntent通知? @ Woodi_333 – ephramd

+0

编辑包括如何创建待定意图。 –

+1

我的活动(主)需要扩展到BroadCastReceiver? – ephramd

0

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

该标志在每个所有活动的onResume()的检查,如果这是真的活性调用它的完成()方法..

这样一来,即使通知激活,一些少数的活动下来道路,每个活动完成()和父活动的onResume()被调用,依次完成()直到mainActivity完成()和应用程序终止。

相关问题