Android学习之使用SharedPreferences存储应用程序数据
程序员文章站
2024-03-02 22:25:52
本文介绍了sharedpreferences保存应用程序数据的具体步骤,供大家参考,具体内容如下
1、sharedpreferences的简单介绍
应用程序在运行的时候...
本文介绍了sharedpreferences保存应用程序数据的具体步骤,供大家参考,具体内容如下
1、sharedpreferences的简单介绍
应用程序在运行的时候,可能会随着用户的使用而保持该用户的配置信息,如上次播放时的eq设置,音量设置,上网的cookies信息等等,这些小量 的信息可以通过sharedpreferences来保持,通过sharedpreferences保持的数据为一个xml文件,位于应用程序的私有文件夹。
2、具体操作方法
获取sharedpreferences,可以通过以下方法获取:
参数简述:
name————获得sharedpreferences之后,将会在应用程序的私有文件夹中保存着一个xml文件,第一个参数name就是这个文件名字。
mode————xml文件的保存模式,默认为0,也就是mode_private
3、简单的demo
通过service的一个音乐播放例子,“播放”与“暂停”两个按钮
暂停之后,保持播放进度到sharedpreferences里面,然后再次播放的话,读取进度值进行音乐播放。
/* * @author:conowen * @date:12.3.01 * */ package com.conowen.sharedpreferences; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; public class sharedpreferencesactivity extends activity { /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); button play = (button) findviewbyid(r.id.play); button pause = (button) findviewbyid(r.id.pause); final intent intent = new intent(sharedpreferencesactivity.this,service.class); // 定义intent为final,全局变量,供下面两个匿名内部类(onclicklisenter)使用 play.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub startservice(intent); // 开始播放,通过前面定义好的intent传递 } }); pause.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub stopservice(intent); // 停止播放 } }); } }
第二个class是继承service的,记得在manifest.xml里面注册service
/* * @author:conowen * @date:12.3.01 * */ package com.conowen.sharedpreferences; import android.app.service; import android.content.intent; import android.content.sharedpreferences; import android.media.mediaplayer; import android.os.ibinder; public class service extends service { mediaplayer player; // 新建播放器 @override public void oncreate() { // todo auto-generated method stub super.oncreate(); player = mediaplayer.create(this, r.raw.lt26); player.setlooping(true); // 两种方式的第一个生命周期都是oncreate() } @override public void onstart(intent intent, int startid) { // todo auto-generated method stub super.onstart(intent, startid); sharedpreferences sp = this.getsharedpreferences("music_progress", mode_private); // music_progress为xml文件的文件名 player.seekto(sp.getint("progress", 0)); // progress为键值对中的key,progress所对应的值通过player.getcurrentposition()获得,请看下面详细 // 每次调用onstart方法时,就会设置player的进度 // mediaplayer的seekto方法,读取进度,然后播放,getint的第一个参数是所要读取的key名字,第二个参数为默认初始值。也就是说进度初始默认为0 player.start(); } @override public void ondestroy() { // todo auto-generated method stub super.ondestroy(); sharedpreferences sp = this.getsharedpreferences("music_progress", mode_private); sp.edit().putint("progress", player.getcurrentposition()).commit(); // player.getcurrentposition()方法获取播放进度的数据 // commit()方法是保存sharedpreferences获取来的数据 player.stop(); } @override public ibinder onbind(intent intent) { // todo auto-generated method stub return null; } }
通过sharedpreferences保存的文档如下所示,打开ddms,切换到file explore,在私有目录下的shared_prefs文件夹里面,路径为
/data/data/你的包名/shared_prefs
内容如下
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <int name="progress" value="90695" /> </map>
以上就是本文的全部内容,希望对大家学习android软件编程有所帮助。
推荐阅读
-
Android学习之使用SharedPreferences存储应用程序数据
-
Android学习之使用SharedPreferences存储应用程序数据
-
Android应用中使用SharedPreferences类存储数据的方法
-
Android应用中使用SharedPreferences类存储数据的方法
-
Android通过"记住密码"功能学习数据存储类SharedPreferences详解及实例
-
Android通过"记住密码"功能学习数据存储类SharedPreferences详解及实例
-
Android学习笔记(Android Studio) 7-1 SharedPreferences 轻量数据存储(数据存储)
-
Android数据存储之SQLite使用
-
android使用SharedPreferences进行数据存储
-
Android数据存储之SQLite使用