Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解锁设备后,Android活动重新启动_Android_Android Activity - Fatal编程技术网

解锁设备后,Android活动重新启动

解锁设备后,Android活动重新启动,android,android-activity,Android,Android Activity,我正在创建一个简单的Android项目。但当用户解锁屏幕时(锁定后),我的每个活动都会重新启动。这是android应用程序的正常行为吗?或者我必须在舱单上处理?或者别的什么地方?请帮助……需要为每个活动在清单中添加android:configChanges=“orientation | keyboardHidden”。这就是解决问题的方法 <activity android:configChanges="orientation|keyboardHidden"

我正在创建一个简单的Android项目。但当用户解锁屏幕时(锁定后),我的每个活动都会重新启动。这是android应用程序的正常行为吗?或者我必须在舱单上处理?或者别的什么地方?请帮助……

需要为每个活动在清单中添加android:configChanges=“orientation | keyboardHidden”。这就是解决问题的方法

    <activity
        android:configChanges="orientation|keyboardHidden"
        android:name="YOUR ACTIVITY NAME">
    </activity>

如果您的目标构建版本是Honeycomb 3.2(API级别13)或更高版本,您也必须添加屏幕大小标志,如:

<activity
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:name="YOUR ACTIVITY NAME">
</activity>

因为即使有了“方向”标志,当你的应用程序处于活动状态时,你的应用程序也会在每次方向更改时被终止并重新创建,无论是在屏幕上可见还是被锁定屏幕隐藏。这是因为可用屏幕大小(主要在平板电脑中)实际上会随着系统操作栏位置的变化而变化


这让我疯狂了好几个小时/

你说的重启是什么意思?它对您的应用程序有哪些您希望避免的影响?您的意思是关于您的活动行为或您正在执行的操作正在重新启动?实际上在activity onCreate()中,在image上下载并在ImageView中显示。但若映像是下载的,并且设备被锁定,并且在手动解锁设备之后,会再次调用OnCreate活动。这就是我想要避免的。实际上,一旦调用了activity的onCreate(),就需要在清单中为每个activity添加android:configChanges=“orientation | keyboardHidden”。is解决了这个问题,文档还说,只有当您的targetSdkVersion为13或更高时,才需要“屏幕大小”。否则,您的活动将自行处理配置更改(即使在Android 3.2或更高版本的设备上运行,此配置更改也不会重新启动您的活动)。事实上,您完全正确,这就是为什么我在回答的顶部指出了这一点。仅当生成的目标(不是minSdkVersion,而是targetSdkVersion)为13或更高时,才必须提供此标志。如果应用程序是在任何较旧的android版本中启动的,则该标志将被完全忽略。按预期工作。在我的一些设备中,我的应用程序在解锁屏幕后突然关闭。并通过将此屏幕大小添加到所有活动的配置更改中来修复它。非常感谢你!