我的活動啓動一個IntentService,然後調用一個遠程API。然後我需要將結果數據傳回Activity(通過BroadcastReceiver)。在應用程序的其餘大部分內部,這些數據都封裝在一個類中,原始成員變量保存着數據。但是當結果通過Intent傳遞時,我的選擇受到限制,因爲我無法跨越邊界傳遞標準Java對象。我正在尋找一種簡潔而整潔的方式來通過Intent傳遞像這樣的對象,而不需要編寫大量的重複代碼。如何從IntentService返回對象?
選項:
- 我的類實現Parcelable。單調地執行/維護
- 單獨傳遞每個成員變量,並在另一側重建對象。單調乏味地實施/維護
- 使用AIDL指定合同。從來沒有做過,不知道這是多麼恰當。
- 序列化對象並將字符串傳遞給Activity。通過一個意圖是否存在字符串長度限制?我收集可能有性能問題。
我應該使用哪種方法,爲什麼?
你是否將許多同一類的對象傳遞給活動?你想緩存這些數據嗎? – manno23
它通常是一個對象,並且數據通常不會被緩存。 –