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