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

时间:2011-09-20 10:44:26

标签: android widget restart reboot

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

这是一个PictureFrame小部件 窗口小部件布局中有两个ImageView(2x2大小)
1。在主屏幕上添加小部件 - >当然出现了!
2。重新启动 - >消失(有时出现......非常奇怪的问题..)
第3。但如果我旋转屏幕 - > 出现

这个问题在LG,SamSung,CM7 Roms(以及各种'Home Launcher App')以下的设备上都很受欢迎 但是,HTC Sense和MIUI都没有问题

更奇怪的是......

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

这是问题的核心来源。

provider.java source

// 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;
}

2 个答案:

答案 0 :(得分:0)

重启后同样的问题,小部件消失了。 我看到这篇文章: http://code.google.com/p/cyanogenmod/issues/detail?id=3167

答案 1 :(得分:0)

您只需在 super.onReceive () 方法上调用 onReceive () 即可防止小部件管理器生命周期中断。