- 浏览: 926897 次
- 性别:
- 来自: 上海
最新评论
-
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 1229extern "C" { jint Jav ... -
Android ServiceManager注册自定义service
2015-08-19 09:53 4179当我们要使用android的系统服务时,一般都是使用Conte ... -
Android ALMP 架设web服务器配置
2014-10-08 18:48 1500随着信息时代的发展,智能手机已经越来越普及。下面本文将带大家把 ... -
Android UiAutomator 自动化测试
2014-07-04 17:39 10041一、一个BUG引发的问题 ... -
Android XP MTP支持
2014-03-18 16:41 2339家里电脑是win7,连上直接豌豆荚装驱动就好了。但单位的XP却 ... -
Android Launcher2 icon大小修改
2012-08-16 19:12 6073不同分辨率、不同屏幕的不同设备,android 原生的Laun ... -
android 浏览器APN切换
2012-04-16 16:42 2362业务需求:有些链接需 ... -
android 浏览器全屏显示
2012-04-16 16:40 4923业务需求:浏览器设置中支持全屏显示的功能。 分析:只需要在 ... -
Android MD5校验码的生成与算法实现
2012-03-05 15:05 20399在Java中,java.security.MessageDi ... -
Android View的xml属性
2012-02-27 13:25 2838java.lang.Object andro ... -
Android Gallery3D源码学习总结(三)——Cache缓存及数据处理流程
2011-12-29 11:04 4705第一,在应用程序中有三个线程存在:主线程(随activity的 ... -
Android Gallery3d源码学习总结(二)——绘制流程drawThumbnails
2011-12-29 11:02 2949此函数控制相册表格页 ... -
Android Gallery 3D 特效精华
2011-12-29 10:45 5344Android Gallery 3D 特效精华 一、布 ... -
Android Gallery3d源码学习总结(一)——绘制流程drawFocusItems
2011-12-29 10:42 2751显示单张图片相关的输入变量 int selecte ... -
Android:AppWidget,PendingIntent,RemoteViews用法
2011-11-25 10:09 5935什么是AppWidget?AppWidget就是我们平常在 ... -
Android软件汉化/精简/去广告教程
2011-08-23 12:32 2943前言: 现在随处都可以找到功能强大的汉化工具,操作简 ... -
Android ListView页眉页脚效果
2011-07-06 14:07 2688大家都知道,在我们调用ListView的addFooterVi ... -
Android 获取设备信息
2011-06-22 21:09 7978)android 获取设备型号、OS版本号: imp ... -
Android 应用安装设置
2011-05-31 16:18 1922应用程序的默认安装位置以及是否可移动取决于该程序的开发者的配置 ... -
Android Activity去除标题栏和状态栏
2011-05-31 13:10 40492一、在代码中设置 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,Android 开发者可以在多个 Activity 之间轻松传递数据,尤其适用于保存用户登录状态等简单信息。合理使用这一工具,可以使代码更加简洁且易于维护。
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文件,它允许...
在Android应用开发中,Shared Preferences 是一种轻量级的数据存储方式,主要用于存储应用程序中的轻量级数据,如用户设置、简单配置等。它提供了一种键值对的形式来保存数据,且这些数据会持久化存储在设备上,即使...
android:authorities="your.package.name_preferences" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider"> android:name="android.support....
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(){ ...
共享首选项(Shared Preferences)是Android提供的一种轻量级的数据存储方式,适用于保存少量的键值对数据,如用户设置、简单的配置信息等。在本文中,我们将深入探讨如何在Android中使用Shared Preferences进行数据...
在Android开发中,数据存储是应用生命周期管理的重要组成部分。`SharedPreferences`是Android提供的一种轻量级的数据存储方式,常用于存储应用的配置信息或者简单的用户数据。本篇将深入探讨`SharedPreferences`的...
在Android开发中,Shared Preferences是应用中保存轻量级数据的一种常见方式,它主要用于存储一些简单的键值对数据,如用户设置、应用状态等。在深入理解`sharedPref`的学习源码之前,我们先来回顾一下 Shared ...
### Android 数据存取之 Preferences #### 一、概述 在Android开发中,应用程序往往需要存储用户的个性化设置,例如字体大小、背景颜色或是地理位置等信息。为了实现这一需求,Android提供了多种数据存储方式,...
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 ,则可以将...
Shared Preferences是Android提供的一种轻量级的数据存储机制,常用于保存应用程序中的配置设置或简单的键值对数据。它以XML格式存储,适合保存少量非结构化的数据。在这个"Sharedpreferences存储数据的使用方法_...
在安卓(Android)平台上,Shared Preferences 是一种轻量级的数据存储机制,用于保存应用程序中的简单键值对数据,如偏好设置或用户配置。这个压缩包文件 "sharedPref.rar" 可能包含了一些示例代码或者解析,以帮助...
在安卓(Android)平台上,Shared Preferences 是一种轻量级的数据存储机制,用于保存应用程序中的简单键值对数据,如设置、用户偏好等。这个“安卓Android源码——sharedPref1.rar”压缩包文件可能包含了关于如何在...
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...
Shared Preferences是Android系统提供的一种轻量级的数据存储方式,主要用于存储一些简单的键值对数据,如用户偏好设置、应用配置等。这种方式非常适合保存少量非敏感数据,并且易于读写。下面我们将深入探讨如何在...
在Android开发中,Shared Preferences是保存轻量级数据的一个重要工具。它主要用于存储用户的一些配置信息或者简单数据,比如登录状态、应用主题设置等。在本压缩包“Android sharedPref学习源码.zip”中,我们可以...