当窗口小部件具有配置活动时,从窗口小部件启动活动时出现问题

时间:2013-07-04 15:31:12

标签: android android-widget

当窗口小部件具有配置活动时,我通过点击主屏幕窗口小部件来启动活动时遇到问题。

通常情况下,我在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);  

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

干杯

1 个答案:

答案 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);


}
相关问题