2016-05-12 78 views
1

我正在開發Android上的Web客戶端。我使用IntentService進行http請求。因此,該對象由IntentService組成,它不僅具有原始類型,而且還包含例如Bitmap對象字段。告訴我,請在活動中傳遞對象或其他類的最佳方式。 我嘗試使用ResultReceiver,但回調方法得到僅捆綁對象:從Android IntentService獲取位圖的最佳方式獲得

空隙onReceiveResult(INT發送resultCode,捆綁resultData)

捆綁對象僅是適合於存儲簡單類型。不建議將大型位圖對象作爲字節數組進行轉換。

第二個路徑,即將對象打包在Parcel中並設置爲Intent。然後使用BroadcastReceiver來捕捉它。如何在廣播消息中發送大對象?

也許你可以保存圖像並通過OutputStream方式?或者把它作爲一個靜態變量保存在某個地方?我不是Android的專家,我希望獲得快速應用程序。謝謝你的回答!

+0

你有沒有試過將它存儲在磁盤上,然後在你的Activity中讀取它? –

+0

我在找最好的方法。但是,我可以在Android文件系統中將其寫爲File – strevg

回答

0

Bundle-object僅適用於存儲簡單類型。不建議將大型位圖對象作爲字節數組進行轉換。

是的,你不應該通過Intent傳輸大數據。這不是數據類型,而是數據大小。

第二條路徑,即將對象打包在Parcel中並設置爲Intent。然後使用BroadcastReceiver來捕捉它。如何在廣播消息中發送大對象?

同樣的事情,發送消息仍然需要Intent有其侷限性。

或者只是將它作爲靜態變量保存在某處?

這將工作,但這是一個糟糕的體系結構。如果你這樣做,你將永遠需要考慮這個靜態字段,並且確保在任何時候你都不會保留對你不再需要的Bitmap的靜態引用。我強烈推薦這個。

相反,您可以將您的Bitmap對象存儲到磁盤,然後在您的Activity中讀取它。這裏是一個例子:Save bitmap to location

相關問題