在主屏幕上获取appwidget位置?

时间:2012-12-02 21:08:50

标签: java android widget rect

单击小部件图标时我启动了一个活动。我想要的是将该小部件的位置发送到该活动。我试过了

        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 ryt中有什么?我试图绑定一个全局变量。将其值从onReceive设置为bound=intent.getsourceBounds();这也不起作用。

所以我的问题是 1.如何在onUpdate中使用intent.getsourceBounds()获取窗口小部件位置? 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中使用它。

1 个答案:

答案 0 :(得分:1)

您无需发送; Android为你做到了。 getSourceBounds()只能在活动内部使用。 onUpdate()内未提供此信息。