- 浏览: 914146 次
- 性别:
- 来自: 上海
最新评论
-
liu149339750:
我勒个去,搜到你的博客了,关注!
Android make脚本简记 -
ihopethatwell:
楼主,这个修改时间有个问题,退出修改界面就不保存设置的时间了, ...
Android中如何修改系统时间(应用程序获得系统权限) -
flyar520:
你好...我也遇到屏幕半屏刷成黑屏的问题...但是我的时在开机 ...
Android横屏状态下返回到壁纸界面屏幕刷新问题 -
flyar520:
你好...我也遇到屏幕半屏刷成黑屏的问题...但是我的时在开机 ...
Android横屏状态下返回到壁纸界面屏幕刷新问题 -
taowayi:
推荐android一键反编译神器 apkdec
Android apk反编译
Shared Preferences类似于我们常用的ini 文件,用来保存应用程序的一些属性设置,在
Android平台常用于存储比较简单的参数设置。例如,可以通过它保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。
通过 getPreferences()方法来获得Preferences对象,通过 "SharedPreferences.Editor
editor = uiState.edit();"
取得编辑对象,然后通过"edit.put....()"方法添加数据,最后通过commit()方法保存这些数据,如果不需要与其它模块共享数据,可以
使用Activity.getPreferences()方法保持数据私有。需要着重强调一点是,我们无法直接在多个程序间共享Preferences
数据。 下面我们通过一个例子来保存应用程序当前是否
播放音效的状态。当前音效状态处于关闭时,我们按“上”方向键来开启音效,然后退出程序------>点击back按钮
,当我们再次启动应用程序,现在的音效状态就处于开的状态。 在这个程序中我们在退出时把音效状态保存到 Preferences
中,因此在启动时就读取出上次保存的数据。 我们上次保存的是什么状态 ,在打开的时候就是什么状态。 但是大家得点击back按钮退出时才会保存,因为
我们的 保存操作是放在 back按钮的监听事件里边完成的。 来看看运行时的图片。
Activity01
- package xiaohang.zhimeng;
- import android.app.Activity;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.widget.TextView;
- public class Activity01 extends Activity {
- private MIDIPlayer mMIDPlayer = null ;
- private boolean mbMusic = false ;
- private TextView mTextView = null ;
- @Override
- public void onCreate(Bundle savedInstanceState){
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mTextView = (TextView) this .findViewById(R.id.TextView01);
- mMIDPlayer = new MIDIPlayer( this );
- /*装载资源*/
- //取得活动的preferences对象.
- //getPreferences方法返回单一的SharedPreferences实例
- //getPreferences参数 为操作模式 分别有
- //MODE_PRIVATE私有int值为0 MODE_WORLD_READABLE可读int值为1 MODE_WORLD_WRITEABLE可写int值为2
- SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);
- //取得值 如果mbMusic的值不存在 则直接把false赋给它
- mbMusic = settings.getBoolean("bmusic" , false );
- if (mbMusic) {
- mTextView.setText("当音乐状态:开" );
- mbMusic = true ;
- mMIDPlayer.PlayMusic();
- }else {
- mTextView.setText("当前音乐状态:关" );
- }
- }
- public boolean onKeyUp( int keyCode, KeyEvent event){
- switch (keyCode) {
- case KeyEvent.KEYCODE_DPAD_UP:
- mTextView.setText("当前音乐状态:开" );
- mbMusic = true ;
- mMIDPlayer.PlayMusic();
- break ;
- case KeyEvent.KEYCODE_DPAD_DOWN:
- mTextView.setText("当前音乐状态:关" );
- mbMusic = false ;
- mMIDPlayer.FreeMusic();
- break ;
- }
- return true ;
- }
- public boolean onKeyDown( int keyCode, KeyEvent event){
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- /*这里我们在退出应用程序时保存数据*/
- //取得活动的preferences对象
- SharedPreferences uiState = getPreferences(0 );
- //取得编辑对象
- SharedPreferences.Editor editor = uiState.edit();
- //添加值
- editor.putBoolean("bmusic" , mbMusic);
- //提交保存 NOTE:如果不commit 保存无效
- editor.commit();
- if ( mbMusic ) {
- mMIDPlayer.FreeMusic();
- }
- this .finish();
- return true ;
- }
- return super .onKeyDown(keyCode, event);
- }
- }
package xiaohang.zhimeng; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.KeyEvent; import android.widget.TextView; public class Activity01 extends Activity { private MIDIPlayer mMIDPlayer = null; private boolean mbMusic = false; private TextView mTextView = null; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView) this.findViewById(R.id.TextView01); mMIDPlayer = new MIDIPlayer(this); /*装载资源*/ //取得活动的preferences对象. //getPreferences方法返回单一的SharedPreferences实例 //getPreferences参数 为操作模式 分别有 //MODE_PRIVATE私有int值为0 MODE_WORLD_READABLE可读int值为1 MODE_WORLD_WRITEABLE可写int值为2 SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE); //取得值 如果mbMusic的值不存在 则直接把false赋给它 mbMusic = settings.getBoolean("bmusic", false); if (mbMusic) { mTextView.setText("当音乐状态:开"); mbMusic = true; mMIDPlayer.PlayMusic(); }else { mTextView.setText("当前音乐状态:关"); } } public boolean onKeyUp(int keyCode, KeyEvent event){ switch (keyCode) { case KeyEvent.KEYCODE_DPAD_UP: mTextView.setText("当前音乐状态:开"); mbMusic = true; mMIDPlayer.PlayMusic(); break; case KeyEvent.KEYCODE_DPAD_DOWN: mTextView.setText("当前音乐状态:关"); mbMusic = false; mMIDPlayer.FreeMusic(); break; } return true; } public boolean onKeyDown(int keyCode, KeyEvent event){ if (keyCode == KeyEvent.KEYCODE_BACK) { /*这里我们在退出应用程序时保存数据*/ //取得活动的preferences对象 SharedPreferences uiState = getPreferences(0); //取得编辑对象 SharedPreferences.Editor editor = uiState.edit(); //添加值 editor.putBoolean("bmusic", mbMusic); //提交保存 NOTE:如果不commit 保存无效 editor.commit(); if ( mbMusic ) { mMIDPlayer.FreeMusic(); } this.finish(); return true; } return super.onKeyDown(keyCode, event); } }
MIDIPlayer类主要用来开启和关闭音乐服务
- package xiaohang.zhimeng;
- import java.io.IOException;
- import android.content.Context;
- import android.media.MediaPlayer;
- public class MIDIPlayer {
- public MediaPlayer playerMusic = null ;
- private Context mContext = null ;
- public MIDIPlayer(Context context){
- mContext = context;
- }
- //播放音乐
- public void PlayMusic(){
- //装载资源文件中的音乐
- playerMusic = MediaPlayer.create(mContext, R.raw.start);
- //设置是否循环
- playerMusic.setLooping(true );
- try {
- playerMusic.prepare();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }catch (IOException e) {
- e.printStackTrace();
- }
- playerMusic.start();
- }
- //停止播放音乐
- public void FreeMusic(){
- if (playerMusic != null ) {
- playerMusic.stop();
- playerMusic.release();
- }
- }
- }
package xiaohang.zhimeng; import java.io.IOException; import android.content.Context; import android.media.MediaPlayer; public class MIDIPlayer { public MediaPlayer playerMusic = null; private Context mContext = null; public MIDIPlayer(Context context){ mContext = context; } //播放音乐 public void PlayMusic(){ //装载资源文件中的音乐 playerMusic = MediaPlayer.create(mContext, R.raw.start); //设置是否循环 playerMusic.setLooping(true); try { playerMusic.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } playerMusic.start(); } //停止播放音乐 public void FreeMusic(){ if (playerMusic != null) { playerMusic.stop(); playerMusic.release(); } } }
现在我们已经实现通过Preferences
来存取数据了,那么这些数据到底放在了哪里?其实没安装一个应用程序时,在/data/data
目录下都会产生一个文件夹,如果应用程序使用了Preferences, 那么便会在该文件夹下产生一个shared_prefs
文件夹,其中就是我们保存的数据。查看步骤:
1. 启动模拟器,启动Eclipse
2. 在Eclipse中切换到DDMS ,选择File Explorer标签
3. 找到/data/data 目录中用Preferences 来存取的数据存在Activity01.xml文件中。 还是来张图 比较爽
不过到这里又稍微纠结了一下 似乎在DDMS下还不能查看 保存我们Preferences值的那个文件Activity01.xml 的内容 那我们就去 shell 里边查吧。
发表评论
-
Android JNI 编程常见小问题
2015-09-08 11:31 1192extern "C" { jint Jav ... -
Android ServiceManager注册自定义service
2015-08-19 09:53 4103当我们要使用android的系统服务时,一般都是使用Conte ... -
Android ALMP 架设web服务器配置
2014-10-08 18:48 1430随着信息时代的发展,智能手机已经越来越普及。下面本文将带大家把 ... -
Android UiAutomator 自动化测试
2014-07-04 17:39 9882一、一个BUG引发的问题 ... -
Android XP MTP支持
2014-03-18 16:41 2230家里电脑是win7,连上直接豌豆荚装驱动就好了。但单位的XP却 ... -
Android Launcher2 icon大小修改
2012-08-16 19:12 6000不同分辨率、不同屏幕的不同设备,android 原生的Laun ... -
android 浏览器APN切换
2012-04-16 16:42 2281业务需求:有些链接需 ... -
android 浏览器全屏显示
2012-04-16 16:40 4852业务需求:浏览器设置中支持全屏显示的功能。 分析:只需要在 ... -
Android MD5校验码的生成与算法实现
2012-03-05 15:05 20314在Java中,java.security.MessageDi ... -
Android View的xml属性
2012-02-27 13:25 2797java.lang.Object andro ... -
Android Gallery3D源码学习总结(三)——Cache缓存及数据处理流程
2011-12-29 11:04 4643第一,在应用程序中有三个线程存在:主线程(随activity的 ... -
Android Gallery3d源码学习总结(二)——绘制流程drawThumbnails
2011-12-29 11:02 2872此函数控制相册表格页 ... -
Android Gallery 3D 特效精华
2011-12-29 10:45 5278Android Gallery 3D 特效精华 一、布 ... -
Android Gallery3d源码学习总结(一)——绘制流程drawFocusItems
2011-12-29 10:42 2687显示单张图片相关的输入变量 int selecte ... -
Android:AppWidget,PendingIntent,RemoteViews用法
2011-11-25 10:09 5827什么是AppWidget?AppWidget就是我们平常在 ... -
Android软件汉化/精简/去广告教程
2011-08-23 12:32 2869前言: 现在随处都可以找到功能强大的汉化工具,操作简 ... -
Android ListView页眉页脚效果
2011-07-06 14:07 2649大家都知道,在我们调用ListView的addFooterVi ... -
Android 获取设备信息
2011-06-22 21:09 7904)android 获取设备型号、OS版本号: imp ... -
Android 应用安装设置
2011-05-31 16:18 1844应用程序的默认安装位置以及是否可移动取决于该程序的开发者的配置 ... -
Android Activity去除标题栏和状态栏
2011-05-31 13:10 40435一、在代码中设置 public void onCreate( ...
相关推荐
FastSave is An Android library for fast and easy access to Android Shared preferences. It allows you to save any type or list in the sharedpreferences and retrieve it in convenient way. Installation ...
Android 使用Shared Preferences进行数据存储-样例,演示如何使用 Shared Preferences 获得数据和保存数据、如何使用getPreferences方法创建文件的模式,以及如何使用getPreferences模拟用户参数设置、查看 ...
Android Shared Preferences Helper Android Library to handle SharedPreferences boilerplate code and other tools Download dependencies { compile 'com.github.seanzor:shared-preferences-helper:1.1.0' }...
Shared Preferences是Android平台上的一个轻量级的数据存储类,用于保存和读取应用程序的一些常用配置和数据,比如用户设置的参数、游戏分数、应用程序状态等。Shared Preferences类似于Windows中的INI文件,它允许...
NULL 博文链接:https://byandby.iteye.com/blog/833292
Use a single object : Preferences in your kotlin shared projects Compatible with kotlin android and kotlin native for iphone class MyPresenter { val preferences = Preferences() fun start(){ ...
SharedPref Manager helps to manage your android Shared Preferences very effectively with ease (currently under active development, expect to see new releases almost daily) Features Edit a ...
其中反映以下列出的小写字母,用-代替空格Util Android Shared Preferences: **0.1**可以解析为me.proton.core:util-android-share-preferences:0.1 如果存在所有或某些domain , data , presentation ,则可以将...
android Shared PreferencesDemo
This is Android Shared preference wrapper that encrypts the values of Shared Preferences using AES 128, CBC, and PKCS5 padding with integrity checking in the form of a SHA 256 hash. Each key is stored...
Android Debug Database is a powerful library for debugging databases and shared preferences in Android applications. Android Debug Database allows you to view databases and shared preferences directly...
Android-Shared-Preferences-example-application Android 共享首选项示例应用程序
Android共享首选项演示版2020年Spring 共享首选项演示项目
一个用于调试android数据库和shared preferences的库
本文实例讲述了Android数据持久化之Preferences机制。分享给大家供大家参考,具体如下: 在Android中,实现数据持久化有五种方式:Preferences,文件File,I/O操作、SQLite数据库,ContentProvider组件。 下面逐个做...
分别使用getPreferences()和getSharedPreferences()建立xml文件,UI上输入数据类型、键、值之后...可以使用adb查看data/data/<package-name>/shared_prefs/路径下生成的xml,也可以通过输入键名点击Read按钮进行查看
android SharedPreferences 载入已记住的用户信息,类写的简单易懂,很清楚
6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享(ContentProviders) 6.7 小...
如何通过Shared Preferences、Files、Network和SQLite等方式高效实现Android数据的存储?又如何通过Content Providers轻松地实现Androld数据的共享? 如何使用Open Core、MediaPlayer、MediaRecorder方便快速地...
Shared Preferences and Updating Status Fragment The Filesystem Explained Summary Chapter 10 Services Our Example Service: RefreshService Pulling Data from Yamba Summary Chapter 11 Content Providers ...