【发布时间】:2016-06-04 15:49:47
【问题描述】:
我有一个带有服务和持续通知以及两个活动的应用:
Activity A 和 Activity B。
Activity A 有一个以Activity B 开头的按钮。
点击通知时,我希望发生下一个场景:
- 如果应用关闭 -> 使用
Activity A启动应用。 - 如果应用程序在任一活动中在前台或后台(打开的应用程序列表)中打开 -> 显示当前活动而不启动新的
Activity A,这意味着如果我在Activity B中 -> 显示当前的@987654329 @ 和Activity A相同,无需启动新的。
找了好久终于找到了这个answer,说需要做:
final Intent notificationIntent = new Intent(context, ActivityA.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
在清单中我有:
注意我用了android:launchMode="singleTop".
<activity
android:name=".ActivityA"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/AppTheme.NoActionBar"></activity>
<activity
android:name=".ActivityB"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/AppTheme.NoActionBar"></activity>
它似乎没有足够的一致性,如果执行以下操作它永远不会起作用:启动应用程序->启动activity A->启动服务(显示通知)->转到Activity B->单击通知打开Activity A。
我想知道是否有更好的一致解决方案:
【问题讨论】:
-
哪个
Activity是 CATEGORY=LAUNCHER 和 ACTION=MAIN 的那个?
标签: android android-intent android-activity android-service android-notifications