当窗口小部件具有配置活动时,我通过点击主屏幕窗口小部件来启动活动时遇到问题。
通常情况下,我在widget提供程序类的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);
如果您需要查看我的配置活动和窗口小部件提供程序的代码,请告诉我 感谢您花时间阅读本文以及您可以给予的任何帮助。
干杯
答案 0 :(得分:0)
正如您已经看到here,当您进行配置活动时,不会调用onUpdate,第一次小部件被推送。
这就是它的工作原理:用户选择小部件是列表,当他将它放在他想要的位置时,活动会自动显示在前面。然后,用户可以配置他需要的内容。因此,此时不会调用onUpdate!但是如果稍后用户点击小部件,则会调用onUpdate,然后您可以处理点击以启用任何活动。我不确定你是否可以调用configure acitivty来修改这样的小部件,你可能需要添加代码才能使更改工作。
@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);
}