更改字体会重新启动活动

7

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

有没有办法避免重新启动我的Activity? 我已经使用基本的"Hello World"应用程序进行了测试。

我正在使用Android 4.1作为目标。

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


显示的错误是什么? - Janmejoy
没有出现错误。当我回到我的应用程序时,它只是调用了我的活动的onCreate()方法,而不是onResume() - sachy
@sachy 你有解决方案了吗! - CoDe
@shubh 看起来安卓系统本意就是这样。我还没有找到解决方案。 - sachy
4个回答

1

您应该使用android:configChanges="fontScale"。 但是,您需要自己处理该配置更改,通过覆盖onConfigurationChanged()方法来实现。 可以参考this


1
正如我之前提到的,我已经尝试过这个了。但是fontScale是用于字体大小而不是字体类型的。 - sachy

0

fontScale 是用于字体大小而非字体类型的。 - sachy

-1

我已经尝试了以下方法,它应该适用于您,但是当字体样式更改后,它会导致活动被销毁,然后用户必须再次启动活动。

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

希望这可以帮到你!


-1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接