Android 为什么小部件在重新启动后不工作?

Android 为什么小部件在重新启动后不工作?,android,widget,reboot,Android,Widget,Reboot,我有一个简单的小部件,当我点击它时,它应该会打开我的活动,它可以工作,但在重新启动后就不工作了。我必须删除小部件,然后再次将其添加到主屏幕,因为当我单击小部件时,小部件不会响应,也不会打开我的活动。那么问题出在哪里呢 代码: public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length;

我有一个简单的小部件,当我点击它时,它应该会打开我的活动,它可以工作,但在重新启动后就不工作了。我必须删除小部件,然后再次将其添加到主屏幕,因为当我单击小部件时,小部件不会响应,也不会打开我的活动。那么问题出在哪里呢

代码:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        final int N = appWidgetIds.length;

        for(int i=0; i<N; i++){
            int appWidgetId = appWidgetIds[i];

            context.startService(new Intent(context, WidgetService.class));

            Intent intent = new Intent(context, WidgetDialog.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
            views.setOnClickPendingIntent(R.id.layout_widget, pendingIntent);

            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    }

    @Override
    public void onEnabled(Context context){
        context.startService(new Intent(context, WidgetService.class));
    }

    @Override
    public void onDisabled(Context context){
        context.stopService(new Intent(context, WidgetService.class));
    }
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]appWidgetIds){
final int N=appWidgetIds.length;

对于(int i=0;i重新启动后,将调用OnEnabled而不是onUpdate,因此将代码从onUpdate移动到单独的方法中,然后调用该方法从OnEnabled更新所有小部件,小部件继承的AppWidgetProvider在启动时从操作系统接收到
操作\u APPWIDGET\u update
系统


如果您未调用
super.onReceive()
而覆盖
onReceive
,则需要自己拦截此意图。

找到解决方案了吗?是的,我找到了。无论如何,感谢您的提问。您应该发布解决方案,而不是说“谢谢您的提问”.@Adam你能解释一下你是如何解决这个问题的吗?就像奇怪的答案所暗示的那样?我在一些旧的Android版本上遇到了这个问题,我记得有时候在重新启动后不会调用OnUpdate和OnEnabled方法,但我认为现在应该可以正常工作了。