0

当小部件具有配置活动时,我无法通过点击主屏幕小部件来启动活动。

通常,我在小部件提供程序类的 onUpdate 方法中有 Intent 和 PendingIntent。但是,据了解,当您为小部件配置活动时,不会调用它。

基本上,我需要知道把这段代码放在哪里

Intent intent = new Intent(context, ClassToLaunch.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget, pendingIntent);  

如果您需要查看我的配置活动和小部件提供程序的代码,请告诉我感谢您花时间阅读本文以及您可以提供的任何帮助。

干杯

4

1 回答 1

0

正如您已经在这里看到的,当您有一个配置活动时,不会调用 onUpdate,这是第一次放置小部件时。

它是这样工作的:用户选择的小部件是列表,当他把它放在他想要的地方时,活动就会自动出现在前面。然后用户可以配置他需要的东西。因此,此时不调用 onUpdate !但是,如果稍后用户单击小部件,将调用 onUpdate,然后您可以处理单击以打开任何活动。我不确定您是否可以调用配置活动来修改小部件,您可能必须添加代码才能使更改生效。

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Intent intent = new Intent(context, ClassToLaunch.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
        views.setOnClickPendingIntent(R.id.widget, pendingIntent);  

        // Push update for this widget to the home screen
        ComponentName thisWidget = new ComponentName(context, WidgetProvider.class);
        AppWidgetManager manager = AppWidgetManager.getInstance(context);
        manager.updateAppWidget(thisWidget, views);


}
于 2013-07-04T15:39:54.077 回答