发布时间:2009 年 11 月 30 日星期一下午 5:08 发布主题:Intent Extras 的简单问题
我正在为主屏幕开发一个应用小部件。我正在努力做到这一点,因此当用户点击小部件时,它会更改小部件中显示的数据。但是,我还允许使用不同数据打开多个小部件实例。因此,为了告诉我的方法要更新哪个小部件,我在启动的意图中添加了一个额外的内容以更改数据。
这是我的意图:Java:
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。
任何人都知道如何解决这个问题?希望我没有说得太糟糕。
感谢阅读,托尼