Android学習ノート(13)--SharedPreferencesを利用してアプリケーションのデータを保存


/********************************************************************************************  * 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 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
  • 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に進行を維持し、再度再生すると進行値を読み込んで音楽再生を行います.
    /*
     * @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
    Android学习笔记(13)————利用SharedPreferences来保存应用程序的数据_第1张图片
    内容は以下の通り
    
    
    
    
    

    サービスの詳細については、以前のブログを参照してください
    http://blog.csdn.net/conowen/article/details/7272018