在手机中的Android应用程序的整个生命周期中存储变量的方法

时间:2016-07-02 17:32:17

标签: android global-variables

我是Android新手。我正在构建一个测试应用程序,我需要存储一个变量的值,例如用户strength。我想在用户使用该应用时增加或减少此strength的值。用户关闭应用并在第二天重新打开后,他应该找到相同的strength值。

我能想到的一种方法是每次将一个本地数据库存储在手机中并进行读/写,因为几乎没有3到4个这样的变量。所以db我不是一个好选择。 我想的另一个是使用android.app.Application课,但我无法从中得到我想要的东西。我们可以使用android.app.Application实际执行此操作吗?或者是3到4个变量的任何其他方法。

5 个答案:

答案 0 :(得分:1)

您可以使用SharedPreferences将变量存储在共享首选项中。例如,将其设置为:

SharedPreferences sharedPreferences = context.getSharedPreferences("DATA",Context.MODE_PRIVATE);
sharedPreferences.edit().putString("STRENGTH",yourVar).apply();

然后使用:

取出它
SharedPreferences sharedPreferences = context.getSharedPreferences("DATA",Context.MODE_PRIVATE);
strength = sharedPreferences.getString("STRENGTH",null);

答案 1 :(得分:1)

使用SharedPreferences。 SharedPreference提供了一种在应用程序生命周期内持久保存值的简单机制。

答案 2 :(得分:0)

在应用程序目录中编写XML文件,应用程序可以在启动时读取该文件。

答案 3 :(得分:0)

当我们的应用程序处于打开状态时使用应用程序类读取上一个状态并以共享首选项存储您的数据,而您是对的db不是一个好选择。

答案 4 :(得分:0)

与您建议的一样,您可以使用SQLite database存储有关用户的表格。虽然,您现在可能只有一个变量,强度,现在与每个用户相关联,但如果您希望存储关于用户的更多关联值的可能性,我建议使用SQLite数据库。

您可以使用的另一个选项是SharedPreferences,它允许您存储键值对。因此,在您的情况下,每个强度值都可以对应一个用户名。

如果您还没有了解Android的不同存储空间,我建议您查看this

希望这有帮助!