电话重启后小部件未显示

3
我创建了一个小部件,使用很好,但是在重新启动手机后,该小部件不会显示,它是隐形的,但是如果我长按并单击它,我可以将其扔进垃圾箱。
我有一个函数,从我的widgetprovider的configure活动中调用,执行以下操作:
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);
}

我曾经让我的onUpdate不做任何事情,因为从来没有需要更新的内容,但是我认为这个函数在手机重启后会被调用,所以我复制了之前在函数中的代码。
for(int i = 0; i < appWidgetIds.length; ++i)
{
     updateAppWidget(context, appWidgetManager, appWidgetIds[i], savedType);
}

但这似乎也没有什么用……有什么建议吗?
1个回答

11

手机重新启动时,它将调用onEnable而不是onUpdate。

--更新--

int[] allids = AppWidgetManager
    .getInstance(Context)
    .getAppWidgetIds(new ComponentName(Context, YourAppWidgetProvider.class);

这将获取所有受 YourAppWigetProvider 控制的 ID。 在此处阅读更多信息。


onEnable 只接受一个上下文参数...那我该如何在此执行更新代码呢? - GregM
1
请问您能否分享一些onEnable方法的基本代码,以便我了解它。 - Shreyash Mahajan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接