2013-04-02 62 views
1

我想知道在用戶在移動設備上安裝應用程序時是否可以保存對象。在應用程序安裝時將對象保存到內部存儲

爲什麼我要這個?

無論何時用戶啓動應用程序,我的應用程序都會使用一些默認對象來實現其正常行爲,我希望對象在那裏使用。我當然可以在用戶每次打開應用程序時創建它們。 但是,這可能會消耗一些不必要的時間和性能以及電池。如果默認情況下,我只想創建一次,然後它總是在那裏。

我也將使用內部存儲創建這種類型的新對象,將會有默認的對象,我將在上面描述,並且還會有選項來創建新對象並保存以供其他對象使用該應用程序啓動的時間,但它的罰款,我已經讀了一些關於如何序列化對象和使用內部存儲,以保持他們:)

我只是在這裏問第一個問題,創建該項目只有一次一開始,也許在應用程序的安裝時刻?我假設..但不知道它是否可能。

這是非常有幫助的這個空間超過一年的,我已經學到了很多東西,從這裏你謝謝你;)

回答

1

Android提供了以下意圖來檢測應用程序安裝

 <action android:name="android.intent.action.PACKAGE_ADDED"/> 
    <action android:name="android.intent.action.PACKAGE_REMOVED"/> 

。這個解決方案的問題在於,當您嘗試檢測自己的應用安裝時,它不會對您有所幫助。

你可以做的是,每次用戶啓動您的應用程序

  • 檢查是否存在對象
  • 如果不創建一個,並將其寫入內部存儲。

這樣它會創建一次。根據您試圖節省的對象類型,您可能會考慮使用SharedPreferencesSqlLite或簡單地使用file IO。如果你正在編寫Java對象,那麼序列化就是要走的路。

更新

如果你打算從網絡獲得數據的第一次,取決於你能決定的大小,

  • 小檔案:將IT資產的文件夾內,運與apk。
  • 大文件:如果文件大小是巨大的,你可以考慮出貨與APK和同步和更新其餘部分在後臺進程或從網絡下載的一切
+0

您好minhaz感謝您的答覆,是的,這是我也考慮過的一個選項,但我仍然需要檢查文件是否存在..涉及創建一個輸入流和搜索文件的套接字。我在某處讀到了android的IO操作對性能有很大的影響,也許我太嚴格了,但是沒有更好的方法來處理這個問題?非常感謝您的更新, – TiagoM

+0

回答更新 - – minhaz

+0

感謝您的更新,它將是一個小文件,它將是我的一個自定義類的三個對象。那就是我正在尋找的答案,將文件放入資產文件夾中?你能給我一些關於這方面的更多信息嗎?非常感謝 – TiagoM

1

我不知道你的意思。 Java對象存在於內存中,所以當用戶安裝應用程序時「保存」它就沒有多大意義。它不能留在內存中,除非某些進程持有它。

如果您的意思是像JPEG照片或其他數據,您可以將數據放入項目的目錄中,然後在您的應用程序安裝後將其作爲資源進行訪問。請參閱 Providing Resources API指南。如果您使用這些用在用戶安裝新的應用程序,你將會收到通知廣播接收器一起

+0

感謝您的回覆嗨,也許我沒有解釋得很好。當應用程序啓動時,我希望對象已經存在,它們將成爲默認對象,你明白嗎?我可以在每次啓動應用程序時創建它們,但是我正在尋找其他解決方法...也許創建對象並將其序列化並在安裝時將其存儲在內部存儲中,然後我不需要創建該對象對象每次。你說對了?謝謝;) – TiagoM

相關問題