启动模式 Singletop 无法使用权限对话框显示
Posted
技术标签:
【中文标题】启动模式 Singletop 无法使用权限对话框显示【英文标题】:Launch Mode Singletop not working with permisison dialog showing 【发布时间】:2018-09-30 20:59:09 【问题描述】:我有一个Activity
启动模式singleTop
显示权限对话框。
但是当权限对话框出现并且新的 Intent 出现在该活动时,另一个实例被创建。
onNewIntent()
不会被调用。
有什么解决方法吗?
下面是清单条目。
<activity
android:name=".auth.activity.AJRAuthActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.PageIndicatorDefaults"
android:launchMode="singleTop"
android:windowSoftInputMode="adjustResize" />
我开始这个活动的方式:
Intent loginIntent = new Intent(context, AJRAuthActivity.class);
context.startActivity(loginIntent);
【问题讨论】:
添加一些代码来解释问题。和清单条目。 您能否将launchMode也添加到您的呼叫意图中:loginIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
如果没有权限弹出窗口,它可以工作
你在onCreate()
请求权限吗?
@Sagar 是在 onCreate 中请求
【参考方案1】:
显示权限对话框通常会在您的Activity
之上启动另一个Activity
(系统Activity
)。在这种情况下,您的Activity
将被暂停(调用onPause()
)。此时,您的Activity
不再是堆栈中的顶部Activity
,因此即使指定了“singleTop”启动模式和/或Intent.FLAG_ACTIVITY_SINGLE_TOP
,再次启动Activity
也会创建另一个实例。
见Request permission dialog pauses my activity
要解决此问题,您应确保尽早获得可能需要的所有权限,或者重新架构您的应用程序,以免出现多个实例的问题。
【讨论】:
以上是关于启动模式 Singletop 无法使用权限对话框显示的主要内容,如果未能解决你的问题,请参考以下文章