2

I would like to update values through putExtra from an activity to a service, but the values are always the old one.

Activity:

    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;
 }

Now, when I update the "liste" in the activity, there will no change in the service. Any idea?

4

1 に答える 1

0

意図はそのようには機能しません。インテントでオブジェクトへの参照を渡すのではなく、オブジェクトをシリアル化してインテントに配置します。そのため、1 つのバージョンを更新しても、他のバージョンは更新されません。そのため、インテントをまったく別のアクティビティに渡すことができます。値は参照されておらず、コピーを作成しています。

于 2013-03-13T19:14:52.377 に答える