更改字体会重新启动活动

时间:2013-01-15 10:59:22

标签: android android-fonts

在应用程序运行时更改系统字体时,

Activity正在重新启动。

有什么办法可以避免重新启动Activity吗? 我用基本的“Hello World”应用程序测试了它。

我使用Android 4.1作为目标

PS:我尝试使用android:configChanges,但没有任何与字体更改相关的标记。

4 个答案:

答案 0 :(得分:1)

你应该使用android:configChanges =“fontScale”。  但是你需要通过重写onConfigurationChanged()来自己处理配置更改 可以参考this

答案 1 :(得分:0)

查看官方文档:http://developer.android.com/guide/topics/manifest/activity-element.html#config

看看"fontScale"也许它会起作用。

此外,您可以尝试覆盖活动中的onConfigurationChange功能,以了解哪些更改。

答案 2 :(得分:-1)

您必须自己处理配置更改。

android:configChanges="fontScale" works only for size of the font

答案 3 :(得分:-1)

我已经尝试了以下内容,它应该适合你,但是当字体样式被更改然后用户必须再次启动活动时,它会导致活动被破坏

1)在applcation开始时有一个全局哈希集来存储上下文字符串将上下文作为字符串放在这个哈希集中

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();

希望这有帮助!