即使应用程序被销毁,如何保存变量值?

时间:2017-07-27 18:45:12

标签: android

我在y代码中遇到一个问题,我正在创建一个保存音频文件的录音机应用程序,但是我使用的是变量的文件名,并初始化为0,如下所示

static int count=0;

然后为每个新录制增加它 但问题是,直到应用程序没有被销毁计数工作正常但在我再次启动应用程序后销毁应用程序然后计数再次初始化为0并且我之前的录制被覆盖。那么如何解决这个问题并使计数从应用程序被销毁之前的中断位置增加

2 个答案:

答案 0 :(得分:2)

您可以使用数据库(可能需要超大),也可以将其作为首选项保留(请参阅https://developer.android.com/guide/topics/data/data-storage.html#pref)。保存:

  SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putBoolean("silentMode", mSilentMode);

  // Commit the edits!
  editor.commit();

并阅读:

// Restore preferences
   SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
   boolean silent = settings.getBoolean("silentMode", false);
   setSilent(silent);

答案 1 :(得分:1)

Android中的不同存储选项

enter image description here

内容提供商

enter image description here

  • 考虑从application1添加到设备的结构化数据 不能访问同一设备中存在的另一个应用程序2但是 application1添加到设备的个人资料照片可供使用 运行在同一设备中的application2

  • 将android设备视为一个城市,其中的应用程序是 在城市的房子,房子里的人(应用程序)是数据。 现在内容提供商就像城市中的经纪人(android设备)。 这个经纪人为城市中的人们提供了查找的权限 不同的房子称为android中的内容提供者 设备为设备中的数据提供访问权限 应用

共享首选项

enter image description here

  • 考虑我有一个应用程序说我用来登录的Face Book App 我的帐户。

  • 现在我第一次输入我的用户名和密码了 访问我的帐户。假设我一小时后退出应用程序 我再次使用相同的Face Book App再次登录我的应用程序。

  • 我必须再次输入用户名和密码才能登录我的帐户 我设置了一个主题到我的应用程序和其他设置我的应用程序 看着我当前的手机

  • 这是不必要的,因为我认为我正在使用手机登录 应用程序。所以我会一直用我的手机再次登录 再次,因此一次又一次地输入我的证书是更多的工作 显示它不是一个用户友好的应用程序

  • 共享首选项在我可以使用的场景中非常方便 它的功能是在xml文件中共享我的数据 安装在手机中的Android应用程序,即使是,也不会被破坏 该应用已关闭。在这里我们可以保存用户偏好数据 目前的申请。

  • 结果下次我在手机中打开我的应用程序时,我可以看到数据 自动填写必要的字段,设置为

文件存储

enter image description here

  • 在Android中,我们可以使用设备存储空间来存储数据 它适用于应用程序。数据类型涉及诸如a之类的事情 文本文件,图像文件,视频文件,音频文件等。

  • 如图所示,我们可以看到有两个地方可以 做这个。一种方法是将原始文件写入主/辅助文件 存储。另一种方法是将缓存文件写入 主要/次要存储。

  • 存储原始数据和缓存数据之间也存在差异, 一旦用户存储在内存中的原始数据必须是明确的 由用户明确删除,否则它将存在直到那时。 存储在内存中的缓存数据不是永久数据,因为 如果感觉不足,系统会自动删除它 存储器中。

enter image description here

内部存储:

  • 考虑应用程序中的用户已将数据存储在内部 存储,然后只有该应用程序的用户才能访问该存储 移动设备上的数据以及当数据被自动删除时 用户卸载应用程序。说到哪个内部存储器 私有的。

  • 使用名称包存储应用程序内部存储目录 在android文件系统的特殊位置命名。

  • 当前应用的其他应用或用户无权访问该文件 特定用户和特定应用,除非明确制作 用户可以进行可读/可写访问。

enter image description here

SQLite的

enter image description here

  • Sqlite用于在移动设备中本地存储更多结构化数据 Android应用程序正在运行的位置。结构化数据涉及到 在图中显示的像学生的信息形式 行和列。

  • Sqlite提供类似的功能,如Mysql和oracle但有 功能有限。有些事情涉及表演 对表的查询操作。虽然有创造的功能 视图,但也有一些功能不像存储过程。

  • Sqlite非常有助于存储复杂的大数据 下载一次,可以一次又一次地使用,直到申请 在跑。当应用程序关闭时,sqlite数据库就是 也被毁了。

将所有部分放在一起

enter image description here

回答信用 - Devrath