2012-04-19 44 views
1

我有一個活動和一個intentService,我的intentServie從web獲取一些數據並需要將它傳遞迴活動。我目前在服務中使用ResultReceiver將數據傳遞迴活動。將數據返回到activity,intent.putExtra或contentprovider?

是否適合larg數據集?

Do Intents對通過putExtra傳遞的數據有任何限制嗎?

我應該如何更新主要活動的UI(ListView)?(不會是大數據集被絞死?

我應該使用的ContentProvider呢?如果是的話,我將如何查詢大數據集在UI線程(而不會導致ANR)?

感謝。

回答

1
  • 沒有,它不適合通過意向
  • 發送大量的數據據我記得,有一次我試圖發送這是上面 1MB字節的數據,這是無法ŧ o這樣做。所以我相信,它確實有數據 限制
  • 由於您使用ResultReceiver,所以最好是使用它的 onReceiveResult得到的結果通知,並做任何必需的更新您的UI
  • 如果您的應用程序本身不提供數據到其他應用程序,然後我猜它太 大驚小怪
+0

如果我不使用意圖通過大量的數據(如你所說),那麼我應該怎麼過(不使用的ContentProvider) ?我目前在onReceiveResult中收到的其他東西,但如果我更新OnReceiveResult中的列表(我猜它也在UI線程中),它不會掛起UI。 – SohailAziz 2012-04-19 08:08:34

+0

更新列表不應該掛起,如果確實如此,則使用AsyncTask。關於大意圖,我會建議您使用'getFilesDir()'將文件包或Parcelable對象保存在一個私有文件中,使用常規方法(intent通過廣播,ResultReceiver或任何您的模式)通知對方,以及然後讀取該文件來構建對象並最終刪除該文件。我在我的一個項目中做到了這一點,它的工作完美無缺,沒有任何延遲問題。這樣,你的意圖將保持在小規模 – waqaslam 2012-04-19 08:14:28

相關問題