使用putExtra更新bindservice中的值

时间:2013-03-13 19:12:56

标签: java android

我想通过putExtra将值从活动更新到服务,但值始终是旧值。

的活动:

    ArrayList<String> listTODO = LoadSelections();
    Intent i = new Intent();
    i.putStringArrayListExtra("liste", listTODO);
    i.setClassName("de.home.ku1fg", "de.home.ku1fg.RemoteService");
    bindService(i, mConnection, BIND_AUTO_CREATE);        

Remoteservice:

 public IBinder onBind(Intent intent) {
    listTODO = intent.getStringArrayListExtra("liste");
    return myRemoteServiceStub;
 }

现在,当我更新活动中的“liste”时,服务中不会有任何变化。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

意图不起作用。它不会传递对intent中对象的引用,它会将对象序列化并将其置于intent中。因此更新一个版本不会更新另一个版本。这就是为什么你可以将一个意图传递给一个完全不同的活动 - 没有引用这些值,你正在复制。