我写了一个应用程序,它会通过alarmIntent 每隔一段时间显示一个通知。用户单击通知并进入活动。在此活动中执行某些操作后,他应该在单击通知之前按一个按钮返回到他所在的原始应用程序(如浏览器或主屏幕等)。我的问题是,用户总是返回到我的应用程序的主要活动。我该如何改变呢?
谢谢!
我写了一个应用程序,它会通过alarmIntent 每隔一段时间显示一个通知。用户单击通知并进入活动。在此活动中执行某些操作后,他应该在单击通知之前按一个按钮返回到他所在的原始应用程序(如浏览器或主屏幕等)。我的问题是,用户总是返回到我的应用程序的主要活动。我该如何改变呢?
谢谢!
尝试在您的活动中添加此行
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
System.exit(0);
}
所以我最终找到了解决方案:您需要将 Intent.FLAG_ACTIVITY_MULTIPLE_TASKS 标志添加到意图中,如该问题中所述: 在响应通知后按下后退按钮返回上一个屏幕
尝试Activity.finish()
在按钮单击侦听器功能内。这类似于按下后退按钮。
Notification 启动的 Activity 有两种类型:常规和特殊。常规活动总是返回到 Launcher 或您之前的活动。特殊活动将返回到您的应用程序。
正如您的描述,您应该使用常规活动并通过 TaskStackBuilder 获取 PendingIntent,它将为通知活动创建一个人工回栈。
例如 :
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
这是文档,您可以在此处找到详细信息。 http://developer.android.com/guide/topics/ui/notifiers/notifications.html