从通知开放活动B后返回主要现状

时间:2017-08-30 13:52:33

标签: android android-activity notifications broadcastreceiver

代码从BroadcastReceiver创建通知

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(G.context)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(G.context.getString(R.string.app_name))
                .setContentText("text")
                .setAutoCancel(true)
                .setColor(Color.MAGENTA);

        Intent intent = new Intent(G.context, B.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

        TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(G.context);
        taskStackBuilder.addParentStack(MainActivity.class);
        taskStackBuilder.addNextIntent(intent);
        PendingIntent resultPendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_CANCEL_CURRENT);
        mBuilder.setContentIntent(resultPendingIntent);
        NotificationManager mNotificationManager = (NotificationManager) G.context.getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(2, mBuilder.build());

1 个答案:

答案 0 :(得分:0)

如果您目前在MainActivity.java,然后点击通知并转到B Activity,只需在您的背压控制{{1}中拨打this.finish()onBackPressed()即可} 方法。如果您通过点击一个通知从任何地方打开onClick(),请在B Activity中拨打以下方法。

B activity
  

你可以这样做的其他方式

你不需要做任何事情。默认情况下,当您从活动A移动到活动B时,Android会将活动A添加到Backstack。当您按活动B中的后退按钮或完成后,它会自动从后台恢复活动A.

如果您希望以编程方式完成活动B,请在需要时调用activity的finish()方法。

详细信息Check this