Android學(xué)習(xí)之使用SharedPreferences存儲(chǔ)應(yīng)用程序數(shù)據(jù)
本文介紹了SharedPreferences保存應(yīng)用程序數(shù)據(jù)的具體步驟,供大家參考,具體內(nèi)容如下
1、SharedPreferences的簡(jiǎn)單介紹
應(yīng)用程序在運(yùn)行的時(shí)候,可能會(huì)隨著用戶(hù)的使用而保持該用戶(hù)的配置信息,如上次播放時(shí)的eq設(shè)置,音量設(shè)置,上網(wǎng)的cookies信息等等,這些小量 的信息可以通過(guò)SharedPreferences來(lái)保持,通過(guò)SharedPreferences保持的數(shù)據(jù)為一個(gè)XML文件,位于應(yīng)用程序的私有文件夾。
2、具體操作方法
獲取SharedPreferences,可以通過(guò)以下方法獲?。?/p>
參數(shù)簡(jiǎn)述:
Name————獲得SharedPreferences之后,將會(huì)在應(yīng)用程序的私有文件夾中保存著一個(gè)XML文件,第一個(gè)參數(shù)name就是這個(gè)文件名字。
Mode————XML文件的保存模式,默認(rèn)為0,也就是MODE_PRIVATE
3、簡(jiǎn)單的demo
通過(guò)service的一個(gè)音樂(lè)播放例子,“播放”與“暫?!眱蓚€(gè)按鈕
暫停之后,保持播放進(jìn)度到SharedPreferences里面,然后再次播放的話(huà),讀取進(jìn)度值進(jìn)行音樂(lè)播放。
/* * @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,全局變量,供下面兩個(gè)匿名內(nèi)部類(lèi)(onclicklisenter)使用 play.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub startService(intent); // 開(kāi)始播放,通過(guò)前面定義好的intent傳遞 } }); pause.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub stopService(intent); // 停止播放 } }); } }
第二個(gè)class是繼承service的,記得在manifest.XML里面注冊(cè)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); // 兩種方式的第一個(gè)生命周期都是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為鍵值對(duì)中的key,progress所對(duì)應(yīng)的值通過(guò)player.getCurrentPosition()獲得,請(qǐng)看下面詳細(xì) // 每次調(diào)用onStart方法時(shí),就會(huì)設(shè)置player的進(jìn)度 // MediaPlayer的seekTo方法,讀取進(jìn)度,然后播放,getInt的第一個(gè)參數(shù)是所要讀取的key名字,第二個(gè)參數(shù)為默認(rèn)初始值。也就是說(shuō)進(jìn)度初始默認(rèn)為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()方法獲取播放進(jìn)度的數(shù)據(jù) // commit()方法是保存SharedPreferences獲取來(lái)的數(shù)據(jù) player.stop(); } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } }
通過(guò)SharedPreferences保存的文檔如下所示,打開(kāi)DDMS,切換到File Explore,在私有目錄下的shared_prefs文件夾里面,路徑為/data/data/你的包名/shared_prefs
內(nèi)容如下
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <int name="progress" value="90695" /> </map>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)Android軟件編程有所幫助。
- Android通過(guò)SharedPreferences實(shí)現(xiàn)自動(dòng)登錄記住用戶(hù)名和密碼功能
- Android SharedPreferences存儲(chǔ)的正確寫(xiě)法
- Android本地存儲(chǔ)SharedPreferences詳解
- Android 跨進(jìn)程SharedPreferences異常詳解
- Android SharedPreferences存儲(chǔ)用法詳解
- Android SharedPreferences實(shí)現(xiàn)記住密碼和自動(dòng)登錄界面
- Android應(yīng)用中使用SharedPreferences類(lèi)存儲(chǔ)數(shù)據(jù)的方法
- 簡(jiǎn)介Android應(yīng)用中sharedPreferences類(lèi)存儲(chǔ)數(shù)據(jù)的用法
- Android SharedPreferences四種操作模式使用詳解
相關(guān)文章
完美解決EditText和ScrollView的滾動(dòng)沖突(上)
這篇文章主要為大家詳細(xì)介紹了完美解決EditText和ScrollView滾動(dòng)沖突的方法,感興趣的小伙伴們可以參考一下2016-06-06代碼從windows下visual studio到andriod平臺(tái)遷移實(shí)現(xiàn)步驟
這篇文章主要介紹了代碼從windows下visual studio到andriod平臺(tái)遷移的修改記錄的相關(guān)資料,需要的朋友可以參考下2017-01-01Android7.0開(kāi)發(fā)實(shí)現(xiàn)Launcher3去掉應(yīng)用抽屜的方法詳解
這篇文章主要介紹了Android7.0開(kāi)發(fā)實(shí)現(xiàn)Launcher3去掉應(yīng)用抽屜的方法,結(jié)合實(shí)例形式分析了Android7.0 Launcher3調(diào)整界面布局的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-11-11VerticalBannerView仿淘寶頭條實(shí)現(xiàn)垂直輪播廣告
這篇文章主要為大家詳細(xì)介紹了VerticalBannerView仿淘寶頭條實(shí)現(xiàn)垂直輪播廣告,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08Kotlin開(kāi)發(fā)實(shí)戰(zhàn)之hello world
這篇文章主要為大家詳細(xì)介紹了Kotlin開(kāi)發(fā)實(shí)戰(zhàn)之hello world的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Android屬性動(dòng)畫(huà)實(shí)現(xiàn)炫酷的登錄界面
這篇文章主要為大家詳細(xì)介紹了Android屬性動(dòng)畫(huà)實(shí)現(xiàn)炫酷的登錄界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07Android BottomNavigationBar底部導(dǎo)航控制器使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android BottomNavigationBar底部導(dǎo)航控制器使用方法,感興趣的小伙伴們可以參考一下2016-03-03Android模仿實(shí)現(xiàn)微博詳情頁(yè)滑動(dòng)固定頂部欄的效果實(shí)例
這篇文章主要給大家介紹了關(guān)于利用Android模仿實(shí)現(xiàn)微博詳情頁(yè)滑動(dòng)固定頂部欄效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11