我有一个带服务和持续通知的应用程序和两个活动:
在清单文件中,我有如下内容:
请注意,我使用了
(说明:该段话是关于Android应用程序开发中Manifest文件配置的相关内容)
Activity A
和 Activity B
。在Activity A
中有一个按钮,可以启动Activity B
。当单击通知时,我希望出现以下情况:
- 如果应用程序关闭 -> 用
Activity A
启动应用程序。 - 如果应用程序在前台或后台(打开的应用程序列表)中已打开,不论是在哪个活动中 -> 显示当前活动而无需启动新的
Activity A
。也就是说,如果我在Activity B
中 -> 显示当前的Activity B
,Activity A
也是一样而无需启动新的。
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"
。(说明:该段话是关于Android应用程序开发中Manifest文件配置的相关内容)
<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 的那一个? - undefined