【发布时间】:2010-12-21 20:38:31
【问题描述】:
发布时间:2009 年 11 月 30 日星期一下午 5:08 发布主题:Intent Extras 的简单问题 你好,
我正在开发用于主屏幕的应用小部件。我正在努力做到这一点,因此当用户点击小部件时,它会更改小部件中显示的数据。但是,我还允许使用不同数据打开多个小部件实例。因此,为了告诉我的方法要更新哪个小部件,我在启动的意图中添加了一个额外的内容以更改数据。
这是我的意图: 爪哇:
Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA");
changeData.putExtra("widget_id", currentWidgetId);
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0);
//This will return the correct value, but if I call it in my onreceive() method it won't.
Log.v(TAG, "stored id is: " + changeData.getIntExtra("widget", 0);
这正确存储了小部件 id,但是当调用更改数据方法时,从意图中读取的小部件 id 是第一个小部件实例。也就是说,有一个 for 循环可以生成所有小部件,无论您点击什么小部件,收到的小部件 id 始终是第一个小部件中的第一个小部件 id。
有人知道如何解决这个问题吗?希望我没有说得太糟糕。
感谢阅读, 托尼
【问题讨论】: