在响应通知后,按下后​​退按钮返回上一屏幕

时间:2014-01-02 17:12:38

标签: android android-notifications back-button

我正在使用类似于Creating a simple notification的代码来创建和显示来自网络呼叫的通知。

问题在于我希望响应通知的活动能够完成业务,然后在后退按钮上单击,将之前处于活动状态的活动放回到前台,并使其后备堆完好无损。这与先前活动的活动是否是我的应用程序或其他人的一部分无关。

目前它遵循生成的TaskStackBuilder。引导它备份应用程序层次结构并进入主屏幕。这是糟糕的UI设计,因为它打破了使用该设备的任何人的工作流程,迫使他们手动返回他们的应用程序并花费比必要更多的按钮。这也是不直观的。

According to the official desing guidelines this is how it should work. The implementation I linked to higher up makes back button have the same functionality as up button should have

这也是在众多其他应用程序中实现它的常用方法,包括谷歌官方版本(谷歌播放更新通知),所以必须有一个相对标准的方法来实现这一点。

1 个答案:

答案 0 :(得分:2)

Intent intent = new Intent(getApplicationContext(), MainActivity.class)
//add Intent.FLAG_ACTIVITY_CLEAR_TASK flag this will clear all activitys and 
//launched activity at top. Means no other activity of this application will be running
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
     or
// add Intent.FLAG_ACTIVITY_MULTIPLE_TASK which start one more task your applications 
//   where activity will not be cleared;
  .addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
  PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
  Notification n  = new Builder(context.getApplicationContext())
                 .setContentTitle("simple notification title")
                 .setContentText("simple message")
                 .setContentIntent(pendingIntent)
                 .setAutoCancel(true)
                 .addAction(R.drawable.ic_launcher, "And more",pendingIntent ).build();


  NotificationManager notificationManager =(NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                           notificationManager.notify(0, n);