关于设备方向变化的SO有很多问题 - 对Widget来说可能有意义也可能没有意义。我想收到有关textScale的配置更改的通知。 (我正在做一些计算,哪种字体大小应该最好使用,并稍微重新排列布局,使其在小部件中看起来很漂亮)。
话虽如此,我想知道最好的方法是什么。到目前为止,我发现:
有一个Intent,AppWidgetProvider无法接收(“你不能通过清单中声明的组件来接收它,只能通过使用Context.registerReceiver()显式注册它。”)
将android:configChanges="fontScale"列入清单,这是针对某个活动,而不是针对接收者(适用于窗口小部件......)
然后有一个RemoteViewsService有一个方法onConfigurationChanged(...),但我还不明白,我将如何利用它。
还有更多选择吗?我是否需要使用RemoteViewsService?谢谢你的提示!
答案 0 :(得分:1)
这些都不起作用:
选项1确实有用:https://stackoverflow.com/a/2435879/534471。 问题是注册的BroadcastReceiver与注册它的对象绑定。大多数Android组件(ContentProvider,Activity,Service)都不会永远存在,但Android迟早会被销毁。你最好的选择是START_STICKY的服务,但是当CommonsWare在他的回答中正确地指出它是一个混乱且无效的解决方案(并且不是100%可靠)。
AFAIK对您的问题没有可靠的解决方案。