3

我有一個應用程序使用服務每x秒創建一個自定義對象(MyObject)的ArrayList。然後我希望我的Activity獲得這個ArrayList。如何發送捆綁中的自定義對象的ArrayList

我目前正計劃讓服務每次完成數據查詢時都向活動處理程序發送消息。我想要處理程序的消息包含MyObjects的ArrayList。

當在Activity中構建方法以從該消息中獲取此ArrayList時,我注意到我不能。

如果我試圖

msg.getData().getParcelableArrayList("myObjects") 

然後,我將它傳遞給該方法有望一個ArrayList不會接受它。如果我試圖鑄造結果:

(ArrayList<MyObject>)msg.getData().getParcelableArrayList("myObjects") 

我收到的錯誤:Cannot cast from ArrayList<Parcelable> to ArrayList<MyObject>

MyObject來實現Parcelable,我已經成功地通過讓我活動發送一個ArrayList從我的服務,我的活動調用一個方法上的服務檢索它。儘管如此,我試圖從我的活動中調查我的服務來獲取這些數據。

1)我怎樣才能發送一個ArrayList內的消息包中的處理程序?

2)是否有一個不同的模型,我應該使用我的服務更新我的活動中的數據可能會或可能不可見?我總是希望我的活動中的數據成爲服務中的最新數據。

回答

0

還有另一種應該使用的模型。我問另一個問題提供了答案:

Suppress notifications from a service if activity is running

至於#1,你可以得到它周圍由剛剛從ArrayList中移除申報仿製藥,並在需要的地方鑄造適當。我知道這是有效的,因爲這是基於另一個問題重構之前我所做的。

0

如果演員出現問題,就把它放好,不要投它,錯誤就會消失。

1

我有完全相同的問題,雖然仍然與Parcelable混淆,但我發現靜態變量對於任務來說並不是一個壞主意。

您可以簡單地創建一個靜態字段

public static ArrayList<MyObject> myObjects = .. 

,並通過MyRefActivity.myObjects

從其他地方使用它,我不知道什麼公共靜態變量與活動的應用程序上下文暗示。如果您也有關於這個或這種方法的性能方面的疑問,請參閱:

乾杯。

相關問題