当前位置: 移动技术网 > IT编程>移动开发>Android > Android学习之使用SharedPreferences存储应用程序数据

Android学习之使用SharedPreferences存储应用程序数据

2019年07月24日  | 移动技术网IT编程  | 我要评论

越狱后天气闪退,迅雷下载安装,上海 电影

本文介绍了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软件编程有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网