2

如何在应用程序中进行更改,以便在应用程序重新启动时所有设置保持不变(例如,如果从应用程序中我选择了振动,那么当应用程序未运行时,如果我的手机在应用程序重新启动时处于振铃模式,它将自身设置为振动)?

4

5 回答 5

7

实际上有多种方法可以持久化更改。Android 文档更详细地介绍了所有这些方法,但本质上是这五种方法。最简单的是SharedPreferences,可能。

Shared Preferences

将私有原始数据存储在键值对中。

Internal Storage

将私有数据存储在设备内存中。

External Storage

将公共数据存储在共享的外部存储上。

SQLite Databases

将结构化数据存储在私有数据库中。

Network Connection

使用您自己的网络服务器将数据存储在网络上。

于 2012-04-27T07:58:21.327 回答
1

使用共享首选项。您可以放置​​键值对并在需要时检索。

于 2012-04-27T07:54:23.400 回答
1

您需要将这些设置存储在数据库中。关于如何使用它,请参阅使用数据库

于 2012-04-27T07:54:37.193 回答
1

使用 SharedPreferences

保存您的设置:

SharedPreferences prefs = getSharedPreferences("myprefs",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("email", "my_email@email.com"); 
editor.putString("name", "Albert"); 
editor.commit(); 

检索它们:

SharedPreferences prefs = getSharedPreferences("myprefs",Context.MODE_PRIVATE);   
String email = prefs.getString("email", "default@email.com"); 
于 2012-04-27T08:01:06.663 回答
1

您可以做的是创建一个 PreferenceActivity ,例如:

public class Prefs  extends PreferenceActivity  {   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preference);
    }

}

在 res/xml 文件夹中添加带有此内容的preference.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory android:title="General" >
        <CheckBoxPreference
            android:key="notification"
            android:summaryOff="You will not receive any notification"
            android:summaryOn="Notifications are sent to your device"
            android:title="Get notification" />
    </PreferenceCategory>

</PreferenceScreen>

在您的代码中,您现在可以执行以下操作:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Boolean sendNotification = prefs.getBoolean("notification", false);
于 2012-04-27T08:13:27.127 回答