Android appWidget方向代码

Android appWidget方向代码,android,android-widget,screen-orientation,android-appwidget,Android,Android Widget,Screen Orientation,Android Appwidget,我有一个appwidget中的代码,当手机在主屏幕上的方向发生变化时(如键盘翻转时),我希望运行该程序。我想在appwidget的imageview中更改一个图像。我不能使用链接到方向的不同布局(即“布局”和“布局区域”),因为我直到运行时才知道图像文件的名称,因为它是在运行时创建的。是否只有在主屏幕显示、我的appwidget处于活动状态且方向刚刚更改时,才会触发代码运行 我可以收听配置更改广播,但每次手机切换到横向或纵向时都会播放,我只希望在主屏幕显示时播放。我想不出安卓系统中有什么好方法可

我有一个appwidget中的代码,当手机在主屏幕上的方向发生变化时(如键盘翻转时),我希望运行该程序。我想在appwidget的imageview中更改一个图像。我不能使用链接到方向的不同布局(即“布局”和“布局区域”),因为我直到运行时才知道图像文件的名称,因为它是在运行时创建的。是否只有在主屏幕显示、我的appwidget处于活动状态且方向刚刚更改时,才会触发代码运行

我可以收听配置更改广播,但每次手机切换到横向或纵向时都会播放,我只希望在主屏幕显示时播放。我想不出安卓系统中有什么好方法可以做到这一点。谢谢


Ryan

对于在运行时生成的图像,没有一种好的方法可以做到这一点


一种方法是构建两个版本的图像,并根据所使用的布局/布局区域具有两个可见的图像视图。(因此RemoteView将更新两个ImageView,但只有正确的一个可见。)

Jeff,这一限制的原因是什么?我希望能够使用运行时生成的图像,或者在运行时构建RemoteView,而不是使用预编译的XML—这是非常不灵活的

网站上有更多信息


基本上,从活动中的onConfigurationChanged()更新小部件,并在清单中为该活动添加android:configChanges=“orientation”。糟糕的是,这并没有涵盖所有用例。

是否有必要知道主屏幕是否位于活动堆栈的顶部?或者找出是什么?理论上是的,请看,但主屏幕是一个特定的活动,根据您使用的设备可能会有所不同。您可以使用服务而不是活动来完成它。这肯定会涵盖更多的用例,但仍然存在一个AppWidget而您的应用程序被关闭的情况。