2011-09-20 30 views
2

※这不是App2sd问题。
(首先,你可以试试这个应用程序,其中Android的市场)
https://market.android.com/details?id=com.beadgrip.premierframe

Android小部件,重启后没有显示出来

这是一张图片的Widget。
Widget Layout中有两个ImageViews(2x2大小)
1.在主屏幕上添加一个小部件 - >当然会出现!
2.重新引导 - >消失(有时会出现......很奇怪的问题。)
3.但如果我旋转屏幕 - >出现

下面LG,三星设备这个问题happned, CM7只读存储器(以及各种“家庭桌面应用”的)
但是,HTC Sense的和MIUI是没有问题的

更奇怪的是..

如果我删除一个的ImageView这在WidgetLayout XML - >没有roblem!
(或不是setImageBitmap,其中provider.java源是帧或图片位图之一)

这是问题的内核来源。

provider.java源

重启后
// Update Widget Method 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
    PFramePhotoDatabase helper = new PFramePhotoDatabase(context); 
    for (int appWidgetId : appWidgetIds) { 
     int[] specificAppWidget = new int[] { appWidgetId }; 
     RemoteViews views = buildUpdate(context, appWidgetId, helper); 
     appWidgetManager.updateAppWidget(specificAppWidget, views); 
    } 
    helper.close(); 
} 

static RemoteViews buildUpdate(Context context, int appWidgetId, PFramePhotoDatabase helper) { 
    RemoteViews views = null; 
    // Getting a frame, picture from SQLite 
    Bitmap bitmap_Pic = helper.getPhotoPicture(appWidgetId); 
    Bitmap bitmap_Frm = helper.getPhotoFrame(appWidgetId); 
    views = new RemoteViews(context.getPackageName(), R.layout.layout_widget22); 

    // If I delete one 'if' it's not problem!, it's perfect! 
    // So I devided buildUpdate Method as two kinds, But It's same problem :< 
    if (bitmap_Pic != null) { 
    views.setImageViewBitmap(R.id.wiv_Picture22, bitmap_Pic); // Picture set a ImageView 
    } 
    if (bitmap_Frm != null) { 
    views.setImageViewBitmap(R.id.wiv_Frame22, bitmap_Frm); // Frame set a ImageView 
    } 
    return views; 
} 

回答