场景-ActivityA可见。按下Android设备的“主页”按钮后,ActivityA / App进入后台,而在onUserLeaveHint()中,激发打开ActivityB的意图。该应用会立即最小化,但ActivityB在延迟5-6秒后会打开。经过一些调试后,会立即触发意图,但是5到6秒后会调用ActivityB的onCreate()。 PS-ActivityB具有启动模式-单个实例。
知道为什么会这样吗?
打开活动的代码如下-
override fun onUserLeaveHint() {
super.onUserLeaveHint()
val intent = Intent(this, ActivityB::class.java)
startActivity(intent)
}
清单文件中的ActivityB定义如下-
<activity android:name=".activity.ActivityB"
android:allowTaskReparenting="true"
android:autoRemoveFromRecents="true"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:excludeFromRecents="true"
android:screenOrientation="portrait"
android:noHistory="true"
android:launchMode="singleInstance"
android:taskAffinity=""
android:supportsPictureInPicture="true"
android:theme="@style/PipTheme"/>
PipTheme-
<style name="PipTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:backgroundDimEnabled">false</item>
答案 0 :(得分:1)
https://issuetracker.google.com/issues/36910222 除了问题以外,它很可能是一种框架功能,可以阻止应用在按下主屏幕按钮时强制自己打开。
有几种解决方法:
使用pendingIntent-
val intent = Intent(上下文,ActivityB :: class.java) valendingIntent = PendingIntent.getActivity(context,0,intent,0) endingIntent.send()
使用警报管理器打开活动