猿问

从通知中恢复应用程序和堆栈

从通知中恢复应用程序和堆栈

我想恢复我的应用程序从状态栏通知完全相同的方式,当用户点击它的图标在启动器。

也就是说:我希望堆栈处于与用户离开之前相同的状态。

在通知中设置挂起的意图时,问题在于它总是针对特定的活动。我不想要这个。我需要恢复应用程序,就像启动程序一样。

因此,如果用户在活动A中,我希望恢复活动A。如果他已经从活动A中启动了活动B,那么我希望在用户点击通知时显示B,然后恢复堆栈,以便当用户在B中单击后退按钮时恢复A。

还有几个类似题目的问题,但没有一个能解决我的问题。


catspeake
浏览 420回答 3
3回答

跃然一笑

在Android启动应用程序时,只需使用与Android相同的意图过滤器:final Intent notificationIntent = new Intent(context, YourActivity.class);notificationIntent.setAction(Intent.ACTION_MAIN); notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);就像Intent你创建是为了打开你的Activity在通知栏中,与用于启动应用程序的android相同,之前打开的Activity将显示,而不是创建一个新的。

神不在的星期二

创建一个活动,然后设置类别和相应的标志.这就是我的工作方式,我不得不这样做,因为我这样做是为了支持API LVL 8intent.addCategory(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setClass(this, YourActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT|                 Intent.FLAG_ACTIVITY_SINGLE_TOP);PendingIntent pi = PendingIntent.getActivity(this, 0, intent,                     PendingIntent.FLAG_UPDATE_CURRENT);在“仙女宣言”中android:launchMode="singleTask"所以最关键的是Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT以及在舱单上设置的线。希望它能对其他人有所帮助。
随时随地看视频慕课网APP

相关分类

Android
我要回答