1

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

我为什么要这个?

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

我还将使用内部存储来创建这种类型的新对象,会有我上面描述的默认对象,还有创建新对象并将它们保存以供以后使用的选项,在该应用程序的另一个时间已启动,但是很好,我已经阅读了有关如何序列化对象并使用内部存储来保留它们的内容:)

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

拥有这个空间一年多以来非常有帮助,我已经从你那里学到了很多东西,谢谢;)

4

2 回答 2

1

我不确定你是什么意思。Java 对象存在于内存中,因此在用户安装应用程序时“保存”它几乎没有意义。除非某个进程保留它,否则它不能保留在内存中。

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

于 2013-04-02T22:36:49.140 回答
1

Android 提供以下意图来检测应用程序安装

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

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

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

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

这样,它将创建一次。根据您尝试保存的对象类型,您可能会考虑使用SharedPreferencesSqlLite或只是一个文件 IO。如果您正在编写 Java 对象,那么序列化就是要走的路。

更新

如果您计划第一次从网络获取数据,取决于您可以决定的大小,

  • 小文件:将其放在 Asset 文件夹中并与 apk 一起发布。
  • 大文件:如果文件很大,您可以考虑将部分与 apk 一起发布,并在后台进程中同步和更新其余部分,或从网络下载所有内容
于 2013-04-02T22:56:12.730 回答