发表于:星期一2009年11月30日下午5:08发表主题:简单的问题,意图额外 您好,

我工作的一个应用程序窗口小部件的主屏幕。我想,当用户点击它的变化显示在widget数据的小部件,使其左右。不过,我也允许部件具有不同的数据开放的多个实例。因此,为了告诉我的方法,窗口小部件更新,我加入一个额外的到被推出,改变数据的意图。

这里是我的意图有: 爪哇:

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。

人对如何解决这个想法?但愿我没词太糟糕。

感谢阅读, 贝

有帮助吗?

解决方案

这是一个已知的问题PendingIntents;当Android的比较PendingIntents它不比较意图演员,所以你不能只用不同的演员相同的基本意向多次安排。现在,你只能通过将意向独特的比演员,如添加额外信息的意向数据的其他某种方式解决这个问题。

有是对谷歌Android小组讨论一点点:的 http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top