如何从Android主屏幕小部件启动活动

5
我正在努力理解如何实现主屏幕小部件。目前,我(终于)能够在清单中设置意图过滤器,使小部件上的按钮响应按下事件。
但是,我无法想出如何在按下按钮时启动活动。基本上,这是我的代码:
 @Override 
 public void onReceive(Context context, Intent intent) 
 { 
      super.onReceive(context, intent); 
      if(intent.getAction().equals("com.bic.search.searchWidget.CLICK")) 
      { 
           Toast.makeText(context, "It works!!", Toast.LENGTH_SHORT).show(); 
      } 
 } 

但我真正想做的是启动一个新的活动,而不是显示一个toast信息。 我知道这与挂起意图有关,但我无法弄清楚如何使其工作。

非常感谢任何提供帮助和示例代码的人!

2个回答

12

好的,你的应用程序小部件应该已经有一个与按钮绑定的PendingIntent。不要使用触发BroadcastReceiverPendingIntent,而是使用启动ActivityPendingIntent


链接已经失效了,你能修复一下吗? - Joel
@Joel:抱歉,我没有一个当前的项目可以展示这个。 - CommonsWare

0
你可以使用这段代码来解决你的问题。
public class Widget extends AppWidgetProvider {

        // ...

        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

            for(int i = 0; i < appWidgetIds.length; i++){

                RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.widget);

                Intent startActivityIntent = new Intent(context, myActivity.class);
                PendingIntent startActivityPendingIntent = PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                widget.setPendingIntentTemplate(R.id.list_view, startActivityPendingIntent);

                appWidgetManager.updateAppWidget(appWidgetIds[i], widget);

                // ...
        }
    }

    public class WidgetAdapter implements RemoteViewsService.RemoteViewsFactory {

        // ...

        @Override
        public RemoteViews getViewAt(int position) {

        RemoteViews widgetRow = new RemoteViews(context.getPackageName(), R.layout.widget_row);

            Intent fillInIntent = new Intent();
            fillInIntent.putExtra(Widget.EXTRA_LIST_VIEW_ROW_NUMBER, position);
            widgetRow.setOnClickFillInIntent(R.id.list_view_row, fillInIntent);

            // ...

            return row;
        }
    }

希望这能帮到你!


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