小部件电话重启后不显示

Gre*_*egM 3 android android-widget

我创建了一个工作得很好的小部件,直到我重新启动手机,然后小部件不显示它是不可见的但如果我按住并单击我可以将它扔进垃圾箱

我有一个从我的widgetprovider中的配置活动调用的函数,它执行以下操作:

static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
            int appWidgetId, int version) 
 {
        if(savedType == -1)
            savedType = version;
//   android.os.Debug.waitForDebugger();
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main);

    Intent configIntent = new Intent(context, Configure.class);
    configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);


    Uri data = Uri.withAppendedPath(
            Uri.parse(appWidgetId + "://widget/id/")
            ,String.valueOf(appWidgetId));
    configIntent.setData(data);




    PendingIntent pendingIntent = PendingIntent.getActivity
    (context, 0, configIntent,
    PendingIntent.FLAG_UPDATE_CURRENT);

    views.setOnClickPendingIntent(R.id.MainImage,pendingIntent);

    views.setImageViewResource(R.id.MainImage, lv_images[version]);

    appWidgetManager.updateAppWidget(appWidgetId, views);
}
Run Code Online (Sandbox Code Playgroud)

我让我的onUpdate没有做任何事情,因为从来没有任何东西要更新,但是想到这会在手机重启后调用我复制了我在函数中的代码

for(int i = 0; i < appWidgetIds.length; ++i)
{
     updateAppWidget(context, appWidgetManager, appWidgetIds[i], savedType);
}
Run Code Online (Sandbox Code Playgroud)

但这似乎也没有做太多......建议?

xan*_*ndy 11

手机重启时,会调用onEnable而不是onUpdate.

--update--

int[] allids = AppWidgetManager
    .getInstance(Context)
    .getAppWidgetIds(new ComponentName(Context, YourAppWidgetProvider.class);
Run Code Online (Sandbox Code Playgroud)

这将获得受YourAppWigetProvider 控制的所有ID .了解更多关于