我有一个未本地化的应用程序,UI只会以一种语言显示。我想避免在设备的语言环境发生变化时重启应用程序。
我知道要自己处理配置更改,我可以在configChanges中设置' locale '属性:
android:configChanges="orientation|keyboardHidden|screenSize|locale"
此外,我的应用程序还有以下min和target sdk版本:
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="15"/>
我怀疑在android:configChanges中仅使用'locale'仅适用于使用SDK的设备&lt; 17(详情如下)。
我已在使用Android 2.3.5的设备上使用上述配置测试了我的应用。 该应用程序不会重新启动(按预期!)。
但是,在使用Android 4.2.2的设备上,即使我指定了区域设置,应用也会重新启动。为了测试重启是否是由于配置更改,我添加了以下功能:
@Override
public Object onRetainNonConfigurationInstance()
{
Log.d(LOG_TAG, "onRetainNonConfigurationInstance");
return null;
}
在logcat输出中,我看到:
10-11 08:53:28.838: D/myapp(10282): onRetainNonConfigurationInstance
由于我的目标API设置为15,我无法将“layoutDirection”添加到我的android:configChanges。有没有其他方法可以阻止我的应用在使用sdk&gt; = 17?
的设备上重新启动提前致谢。
答案 0 :(得分:0)
为什么你有targetSdkVersion =“15”?应该是18 ...尤其是因为你计划支持Android Jelly Bean 4.2.2
检查this link。