我写了一个应用程序,每隔一段时间通过一个alarmIntent调出一个通知。用户点击通知并进入活动。在完成此活动后,他应该按下按钮返回到他原来的应用程序(如浏览器或主屏幕等),然后单击通知。 我的问题是,用户总是返回到我的应用程序的主要活动。 我该如何改变?通知按钮返回到原来的活动
谢谢!
我写了一个应用程序,每隔一段时间通过一个alarmIntent调出一个通知。用户点击通知并进入活动。在完成此活动后,他应该按下按钮返回到他原来的应用程序(如浏览器或主屏幕等),然后单击通知。 我的问题是,用户总是返回到我的应用程序的主要活动。 我该如何改变?通知按钮返回到原来的活动
谢谢!
所以我找到了解决办法finaly: 需要将Intent.FLAG_ACTIVITY_MULTIPLE_TASKS标志添加到意图在这个问题解释说: Go back to previous screen on backbutton pressed after responding to notification
试试Activity.finish()
里面的按钮点击监听功能。这与按下后退按钮相似。
尝试在活动中加入这一行
@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);
}
有两种类型的活动由通知启动:定期&特殊。 定期活动总是返回到启动程序或您之前的活动。 特殊活动将返回到您的应用程序。
作为您的描述,您应该使用常规活动并通过TaskStackBuilder获取PendingIntent,它将为通知活动创建一个人工后退栈。
例如:
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
这是文档,你可以在这里找到细节。 http://developer.android.com/guide/topics/ui/notifiers/notifications.html
我试过了,但我仍然进入主屏幕而不是前一个应用程序。你能想象为什么? – Jonas
TaskStackBuilder将Intent.FLAG_ACTIVITY_TASK_ON_HOME添加到动作Intent中,如果您不想返回主页,TaskStackBuilder将Intent.FLAG_ACTIVITY_TASK_ON_HOME添加到动作Intent中,如果您不想返回主页,则应该使用PendingIntent.getActivity(),而不是TaskStackBuilder:PendingIntent.getActivity(SecondActivity.this,0,i,PendingIntent.FLAG_UPDATE_CURRENT); –
从意向活动启动或在主要活动我的应用程序? – Jonas
在通知中调用的活动中单击,希望它有所帮助:) – KRist
它工作,中途:)当我按下后退按钮时,我返回到主屏幕。但是有没有办法返回到以前的应用程序呢? – Jonas