防止Android中的窗口小部件屏幕旋转

防止Android中的窗口小部件屏幕旋转,android,android-widget,broadcastreceiver,screen-orientation,Android,Android Widget,Broadcastreceiver,Screen Orientation,我正在用widget做一个应用程序。其主要思想是,用户打开应用程序,插入凭据,关闭应用程序,并在收到来自服务器的新数据时启动IntentService(类似于Cronos的)witch update小部件。一切正常,但当旋转屏幕时,小部件RemoteView中的所有数据都消失了,并且只显示更新的数据。我找到了一些,但需要更干净的 在活动中是否有防止改变方向的技巧 请注意,我不需要禁用系统加速计旋转,如: Settings.System.putInt(getApplicationContext()

我正在用widget做一个应用程序。其主要思想是,用户打开应用程序,插入凭据,关闭应用程序,并在收到来自服务器的新数据时启动IntentService(类似于Cronos的)witch update小部件。一切正常,但当旋转屏幕时,小部件RemoteView中的所有数据都消失了,并且只显示更新的数据。我找到了一些,但需要更干净的

在活动中是否有防止改变方向的技巧

请注意,我不需要禁用系统加速计旋转,如:

Settings.System.putInt(getApplicationContext().getContentResolver(),Settings.System.ACCELEROMETER_ROTATION,0);
我认为我需要更改更新RemoteView的逻辑部分,目前我使用smth,如:

//fill up blok widget
public void fillUpBlockWidget(Context context, String blokTitle) {

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);

    remoteViews.setTextViewText(resourceTitle, blokTitle);

    ComponentName myWidget = new ComponentName(context, WidgetProvider.class);
    AppWidgetManager.getInstance(context).updateAppWidget(myWidget, remoteViews);
}
和我的
WidgetProvider
课程:

public class WidgetProvider extends AppWidgetProvider {

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

    final int N = appWidgetIds.length;


    // Perform this loop procedure for each App Widget that belongs to this provider
    for (int i = 0; i < N; i++) {
        int appWidgetId = appWidgetIds[i];

        appWidgetManager.partiallyUpdateAppWidget(appWidgetId, views);
        pushWidgetUpdate(context, views);



       }
    }
}
公共类WidgetProvider扩展了AppWidgetProvider{
@凌驾
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;
//对属于此提供商的每个应用程序小部件执行此循环过程
对于(int i=0;i