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