2

单击小部件图标时我开始一个活动。我想要的是将该小部件的位置发送到该活动。我已经尝试过

        Intent intent=new Intent(context, WidgetActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("rect", bound);  
        intent.putExtras(bundle);

        //intent.putExtra("rect", bound.toString());
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent, 0);
        RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.pic1);

        views.setOnClickPendingIntent(R.id.wbutton1, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);

在我的 onUpdate 过程中。但这会使活动崩溃。我听说该位置是使用intent.getsourceBounds()onReceive 中的 .Thats 来返回的吗?我尝试将绑定设置为全局变量。将其值从 onReceive 设置为bound=intent.getsourceBounds();这也不起作用。

所以我的问题是 1.如何intent.getsourceBounds()在 onUpdate 中使用小部件位置?2.如何发送到活动中?

感谢您的时间。

编辑:我设法将字符串从小部件发送到活动,如下所示:

        Intent intent=new Intent(context, WidgetActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("pos", "hello");
        intent.putExtras(bundle);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);

编辑 2:我发现https://stackoverflow.com/a/5324918/1685829说可以使用 getSourceBounds() 来完成。谁能解释我如何在 onUpdate 中使用它。

4

1 回答 1

1

你不需要发送它;Android 为您完成。getSourceBounds()只能在活动内部使用。里面没有这个信息onUpdate()

于 2013-12-24T13:01:21.850 回答