0

我有一個帶有自定義ArrayAdapter的ListView,它顯示來自ArrayList的訂單。這些命令應該與我的服務器同步。在那裏我有一個API,我正在請求新的訂單,如果有的話,我會得到訂單的XML。什麼是動態更新listView的最佳方法?我不想使用SQLite來存儲訂單,因爲只有最後10個應該顯示。對於ContentProvider,我無法存儲我的自定義Order對象。如果我將ArrayList包裝到單例類中並在服務中以及在ArrayAdapter的Activity類中使用它,那麼ListView不會動態更新(可能是因爲arrayAdapter創建了數組列表的副本?)。非常感謝你。在服務和活動之間共享數據

菲利普

回答

1

我也不知道你是關於一個ArrayAdapter沒有更新的東西,但是我可以告訴你,我們在我公司使用的解決方案。

我有一個DataMaanger這是活動和網絡或SQLite之間的橋樑。 dataMaanger將其數據保存在內存中,因此它不在數據庫或磁盤中。它的缺點是如果你的應用程序因缺乏內存而被殺害並重建自己,dataManager將是空的,這會給你帶來兩個選擇,無論是在每個Activitie的死亡還是你主要任務的活動中,都會導致你序列化DataManager的數據,或者如果您不依賴任何以前的數據,只需再次提交併更新數據管理器。 我使用廣播來通知我的活動。

要獲得對DataManager的訪問權限,我不使用sigletone。我使用Application對象,你可以擴展它,並在Manifest.xml中給它的名字,然後它將被用來代替regualr應用程序對象。

稍後可以使用Activity類中的getApplication()方法訪問它。