7

Activity在应用程序运行时更改系统字体时正在重新启动。

有什么办法可以避免重启我的Activity?我用基本的“Hello World”应用程序对其进行了测试。

我使用 Android 4.1 作为目标

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

4

4 回答 4

1

你应该使用 android:configChanges="fontScale" 。但是您随后需要通过覆盖 onConfigurationChanged() 自己处理该配置更改 可以参考 这个

于 2013-01-15T11:04:54.827 回答
0

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

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

您也可以尝试onConfigurationChange在您的活动中覆盖函数以找出发生了什么变化。

于 2013-01-15T11:03:58.633 回答
-1

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

android:configChanges="fontScale" works only for size of the font
于 2013-01-16T08:16:03.167 回答
-1

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

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

希望这可以帮助 !

于 2016-08-04T18:21:15.457 回答