gpt4 book ai didi

android - 保存android应用程序的状态?

转载 作者:搜寻专家 更新时间:2023-11-01 09:18:00 27 4
gpt4 key购买 nike

以下哪些适合/适用于保存 Android 应用程序的状态?

一个。 Activity .onFreeze() b. Activity .onPause() C。 Activity .onStop() d. Activity .onDestroy() e. Activity .onFinish()

最佳答案

许多应用程序可能会提供一种方法来捕获用户对特定应用程序或 Activity 设置的偏好。为了支持这一点,Android 提供了一组简单的 API。

首选项通常是名称值对。它们可以存储为应用程序中各种 Activity 的“共享首选项”(注意目前它不能跨进程共享)。或者它可以是特定于 Activity 需要存储的内容。

  1. 共享首选项:应用程序外的所有组件( Activity 、服务等)都可以使用共享首选项。

  2. Activity handled preferences:这些首选项只能在 Activity 中使用,不能被应用程序的其他组件使用。

共享首选项:

共享首选项是在 Context 类的 getSharedPreferences 方法的帮助下管理的。首选项存储在默认文件 (1) 中,或者您可以指定一个文件名 (2) 以用于引用首选项。

(1) 下面是指定文件名时获取实例的方法

public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

MODE_PRIVATE 是首选项的操作模式。这是默认模式,意味着创建的文件只能由调用应用程序访问。支持的其他两种模式是 MODE_WORLD_READABLEMODE_WORLD_WRITEABLE。在 MODE_WORLD_READABLE 中,其他应用程序可以读取创建的文件但不能修改它。在 MODE_WORLD_WRITEABLE 的情况下,其他应用程序也对创建的文件具有写入权限。

(2) 推荐方式默认使用,不指定文件名

SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);

最后,一旦您有了首选项实例,您就可以通过以下方法从首选项中检索存储的值:

 int storedPreference = preferences.getInt("storedInt", 0);

要在首选项文件中存储值,必须使用 SharedPreference.Editor 对象。 EditorSharedPreference 类的嵌套接口(interface)。

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

Editor 还支持 remove()clear() 等方法从文件中删除首选项值。

Activity 偏好:

其他应用程序组件可以使用共享首选项。但是,如果您不需要与其他组件共享首选项并且希望 Activity 具有私有(private)首选项。您可以借助 Activity 的 getPreferences() 方法来做到这一点。 getPreference 方法使用 getSharedPreferences() 方法,并将 Activity 类的名称用作首选项文件名。

以下是获取偏好的代码

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);

存储值的代码也与共享首选项的情况相同。

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

您还可以使用其他方法,例如将 Activity 状态存储在数据库中。注意 Android 还包含一个名为 android.preference 的包。该包定义了类来实现应用程序首选项 UI。

要查看更多示例,请查看 Android 的 Data Storage在开发者网站上发布。

关于android - 保存android应用程序的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3178931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com