使用单个顶部启用活动别名

时间:2017-09-14 08:27:22

标签: android android-intent android-activity android-activity-alias

在我的应用中,有一个别名:MyActivityMyAliasActivity在Manifest中注册的活动。别名的目的是提供额外的意图过滤器。用户可以在运行时启用/禁用此功能。活动和别名已获得singleTop修饰符。

但是,如果我在禁用组件的情况下启动我的应用程序(顶部为MyActivity),那么我启用它,并广播与意图过滤器匹配的事件,再次创建MyActivity(别名) - 我在后台堆中有两个是不受欢迎的。

他能以任何方式处理吗?我需要在backstack中只有一个活动。

1 个答案:

答案 0 :(得分:0)

您应该使用singleTask代替singleTopsingleTask将保证您在backStack中只有一个Activity实例。如果您使用singleTask launchMode第二次启动活动,则会运行onNewIntent而不是创建新活动。另一个解决方案是使用singleInstance,这与singleTask非常相似,只保留一个Activity实例并运行onNewIntent(如果已经创建)。

有关详细信息,请在此处详细说明其工作原理:

https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en

Google参考:

https://developer.android.com/guide/topics/manifest/activity-element.html