安卓基础(永久保存数据)

时间:2024-03-09 13:32:07

今天学习了永久保存数据这一块的知识,利用viewmodel的知识可以暂时储存数据,但是当app后台被清除的时候,数据就会丢失,但是利用sharedpreferences的知识就可以做到将数据保存

下面是我做的一个实例:

MainAcitivity:(注释部分是最简单的本类中储存)

package com.example.sharedpreferences;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
String TAG = "key";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
             MyData myData = new MyData(getApplicationContext());
             myData.number=1000;
             myData.save();
             int y =myData.load();
             Log.d(TAG, String.valueOf(y));
        //       // SharedPreferences shp = getPreferences(Context.MODE_PRIVATE);
//        SharedPreferences shp = getSharedPreferences("MY_DATA",Context.MODE_PRIVATE);
//        SharedPreferences.Editor  editor = shp.edit();
//        editor.putInt("NUMBER",500);
//        editor.apply();
//        int x = shp.getInt("NUMBER",0);
//        Log.d(TAG, String.valueOf(x));
    }
}

MyData:

package com.example.sharedpreferences;

import android.content.Context;
import android.content.SharedPreferences;

import java.security.PublicKey;

public class MyData {
    public int number;
    private Context context;
    public MyData(Context context){
        this.context=context;
    }
    public void save(){
        String name = context.getResources().getString(R.string.MY_DATA);
        SharedPreferences shp = context.getSharedPreferences(name,Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = shp.edit();
        String key = context.getResources().getString(R.string.KEY);
        editor.putInt("key",number);
        editor.apply();
    }
    public int load(){
String  name = context.getResources().getString(R.string.MY_DATA);
SharedPreferences shp = context.getSharedPreferences(name,Context.MODE_PRIVATE);
String key = context.getResources().getString(R.string.KEY);
int x = shp.getInt(key,0);
return x;
}

 

 点开androidstudio的右下角的DECice Experiencorer在点击data目录/data目录

 

 

再再里面找到自己项目的目录

 

 打开xml文件就可以看到自己储存的数据