Activity
在应用程序运行时更改系统字体时正在重新启动。
有什么办法可以避免重启我的Activity
?我用基本的“Hello World”应用程序对其进行了测试。
我使用 Android 4.1 作为目标
PS:我尝试过使用android:configChanges
,但没有任何与字体更改相关的标志。
Activity
在应用程序运行时更改系统字体时正在重新启动。
有什么办法可以避免重启我的Activity
?我用基本的“Hello World”应用程序对其进行了测试。
我使用 Android 4.1 作为目标
PS:我尝试过使用android:configChanges
,但没有任何与字体更改相关的标志。
你应该使用 android:configChanges="fontScale" 。但是您随后需要通过覆盖 onConfigurationChanged() 自己处理该配置更改 可以参考 这个
看看官方文档:http: //developer.android.com/guide/topics/manifest/activity-element.html#config
看看"fontScale"
也许它会起作用。
您也可以尝试onConfigurationChange
在您的活动中覆盖函数以找出发生了什么变化。
您必须自己处理配置更改。
android:configChanges="fontScale" works only for size of the font
我已经尝试了以下,它应该对你有用,但是当字体样式改变时它会导致活动被破坏,然后用户必须再次启动活动
1)有一个全局哈希集来存储应用程序开始时的上下文字符串,将上下文作为字符串放入此哈希集中
2) 暴露一个方法
isContextExits(contextStr) { return hashset.contains(contextStr); }
从申请
3) 通过将内容作为字符串传递到捆绑包中来调用您的活动。
onCreate(Bundle savedInstanceState)
mContextStr = savedInstanceState.getExtra("CONTEXT_STR");
// context has changed then finish the activity
if (!this.getApplicationContext().isContextStr(mContextStr))
finish();
希望这可以帮助 !