3

※App2sdの問題ではありません。
(最初は Android マーケットでこのアプリケーションを試すことができます)
https://market.android.com/details?id=com.beadgrip.premierframe

これは PictureFrame ウィジェットです。
ウィジェット レイアウト (2x2 サイズ) には 2 つの ImageView があり
ます。 1. ホーム画面にウィジェットを追加-> もちろん表示されます。
2. 再起動 -> 消えます (時々表示されます...非常に奇妙な問題..)
3. しかし、画面を回転すると ->表示されます

この問題は、LG、SamSung、CM7 Rom (およびすべての種類の「ホーム ランチャー アプリ」) より下のデバイスで発生しましたが
、HTC Sense と MIUI は問題ありません

もっと奇妙なことは..

WidgetLayout XML の ImageView を 1 つ削除すると、問題ありません!!!
(または、フレームまたは画像ビットマップの 1 つである provider.java ソースが setImageBitmap でない場合)

これは質問のカーネルソースです。

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

2 に答える 2

0

再起動後も同じ問題が発生し、ウィジェットが消えます。私はこの投稿を見ました: http ://code.google.com/p/cyanogenmod/issues/detail?id = 3167

于 2011-09-20T16:30:21.300 に答える