Android学習ノート(13)--SharedPreferencesを利用してアプリケーションのデータを保存
6298 ワード
/******************************************************************************************** * author:conowen@大時計 * E-mail:[email protected] * http://blog.csdn.net/conowen * 注:本文はオリジナルで、学習交流としてのみ使用されます.転載は作者と出典を明記してください.
********************************************************************************************/
1、SharedPreferencesの簡単な紹介
アプリケーションが実行されると、前回の再生時のeq設定、音量設定、インターネットのcookies情報など、ユーザーの使用に伴ってそのユーザーの構成情報が保持される可能性があります.これらの小量の情報はSharedPreferencesで保持でき、SharedPreferencesで保持されているデータはXMLファイルであり、アプリケーションのプライベートフォルダにあります.
2、具体的な操作方法
SharedPreferencesを取得するには、次の方法で取得できます.
public SharedPreferences getSharedPreferences (String name, int mode)
Since: API Level 1
Retrieve and hold the contents of the preferences file 'name', returning a SharedPreferences through which you can retrieve and modify its values. Only one instance of the SharedPreferences object is returned to any callers for the same name, meaning they will see each other's edits as soon as they are made.
Parameters
name
Desired preferences file. If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
mode
Operating mode. Use 0 or
Returns Returns the single SharedPreferences instance that can be used to retrieve and modify the preference values.
パラメータの簡単な説明:
Name--SharedPreferencesを取得すると、アプリケーションのプライベートフォルダにXMLファイルが保存されます.最初のパラメータnameがこのファイルの名前です.
Mode————XMLファイルの保存モード、デフォルトは0、つまりMODE_PRIVATE
3、簡単なdemo
サービスの音楽再生例では、「再生」と「一時停止」の2つのボタン
一時停止した後、SharedPreferencesに進行を維持し、再度再生すると進行値を読み込んで音楽再生を行います.
2番目のclassはサービスを継承しています.manifest.XMLにサービスを登録してください.
SharedPreferencesで保存したドキュメントは以下のようにDDMSを開き、File Explore、プライベートディレクトリのshared_に切り替えます.prefsフォルダ内、パスは
/data/data/あなたのパッケージ名/shared_prefs
内容は以下の通り
サービスの詳細については、以前のブログを参照してください
http://blog.csdn.net/conowen/article/details/7272018
********************************************************************************************/
1、SharedPreferencesの簡単な紹介
アプリケーションが実行されると、前回の再生時のeq設定、音量設定、インターネットのcookies情報など、ユーザーの使用に伴ってそのユーザーの構成情報が保持される可能性があります.これらの小量の情報はSharedPreferencesで保持でき、SharedPreferencesで保持されているデータはXMLファイルであり、アプリケーションのプライベートフォルダにあります.
2、具体的な操作方法
SharedPreferencesを取得するには、次の方法で取得できます.
public SharedPreferences getSharedPreferences (String name, int mode)
Since: API Level 1
Retrieve and hold the contents of the preferences file 'name', returning a SharedPreferences through which you can retrieve and modify its values. Only one instance of the SharedPreferences object is returned to any callers for the same name, meaning they will see each other's edits as soon as they are made.
Parameters
name
Desired preferences file. If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()).
mode
Operating mode. Use 0 or
MODE_PRIVATE
for the default operation, MODE_WORLD_READABLE
and MODE_WORLD_WRITEABLE
to control permissions. The bit MODE_MULTI_PROCESS
can also be used if multiple processes are mutating the same SharedPreferences file. MODE_MULTI_PROCESS
is always on in apps targetting Gingerbread (Android 2.3) and below, and off by default in later versions. Returns
パラメータの簡単な説明:
Name--SharedPreferencesを取得すると、アプリケーションのプライベートフォルダにXMLファイルが保存されます.最初のパラメータnameがこのファイルの名前です.
Mode————XMLファイルの保存モード、デフォルトは0、つまりMODE_PRIVATE
3、簡単なdemo
サービスの音楽再生例では、「再生」と「一時停止」の2つのボタン
一時停止した後、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);
//
}
});
}
}
2番目のclassはサービスを継承しています.manifest.XMLにサービスを登録してください.
/*
* @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
内容は以下の通り
サービスの詳細については、以前のブログを参照してください
http://blog.csdn.net/conowen/article/details/7272018