在应用程序安装时将对象保存到内部存储

时间:2013-04-02 21:52:26

标签: android installation storage

我想知道在用户在移动设备上安装应用程序时是否可以保存对象。

为什么我要这个?

我的应用程序使用一些默认对象来表示他的正常行为,每当用户启动应用程序时我都希望使用对象。我每次用户打开应用程序时都可以创建它们。 但这可能会消耗一些不必要的时间和性能以及电池。如果是默认值,我只想创建一次,然后它总是在那里。

我还将使用内部存储来创建这种类型的新对象,将会有我在上面描述的默认对象,并且还可以选择创建新对象并将其保存以便以后再使用该应用程序已启动,但很好,我已经阅读了一些关于如何序列化对象并使用内部存储来保存它们的内容:)

我就在这里询问第一个问题,在开头只创建一次项目,也许是在应用程序的安装时刻?我在假设..但不知道它是否可能。

这个空间已经超过一年非常有帮助,我已经从这里学到了很多,谢谢你;)

2 个答案:

答案 0 :(得分:1)

我不确定你的意思。内存中存在Java对象,因此在用户安装应用程序时“保存”它就没有多大意义。除非某些过程持有,否则它不能保留在内存中。

如果您的意思是JPEG照片或其他数据,您可以将数据放在项目的目录中,然后在安装应用程序后将其作为资源访问。见 Providing Resources API指南。

答案 1 :(得分:1)

Android提供了以下检测应用安装的意图

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

如果您将这些与广播接收器结合使用,您将在用户安装新应用时收到通知。此解决方案的问题是,当您尝试检测自己的应用安装时,它不会对您有所帮助。

每次用户启动您的应用时,您可以做的是

  • 检查对象是否存在
  • 如果没有创建一个并将其写入内部存储。

以这种方式创建一次。根据您尝试保存的对象类型,您可以考虑使用SharedPreferencesSqlLite或仅使用file IO。如果您正在编写Java Object,那么序列化是可行的方法。

<强>更新

如果您计划首次从网络获取数据,请根据您可以决定的大小,

  • 小文件:将其放在Asset文件夹中并使用apk发送。
  • 大文件:如果文件大小很大,您可以考虑使用apk发送部分并同步并在后台进程上更新休息或从网络下载所有内容