Android实现手机内存存储功能

Android实现手机内存存储功能,第1张

Android实现手机内存存储功能

Android实现手机内存存储功能

效果图写入数据读取数据源码

AddDataTestActivityactivity_add_data_test.xmlSharedPreferencesUtil Log打印日志类(LogUtil)---------------------------------SharedPreferences.Editor的commit()方法和apply()方法的区别

效果图

点击存入,点击获取 吐司结果

写入数据

读取数据

源码 AddDataTestActivity
package com.gaojc.activity;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import com.gaojc.text.R;
import com.gaojc.text.Utils.LogUtil;
import com.gaojc.text.Utils.SharedPreferencesUtil;

public class AddDataTestActivity extends AppCompatActivity {

    // 需要存入的数据(这里为了方便,所以使用假数据)
    private final static String CODE = "ABC666";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_data_test);


        
        findViewById(R.id.saveData).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPreferencesUtil.getInstance(AddDataTestActivity.this).putString("code",CODE);
            }
        });


        
        findViewById(R.id.getData).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String code = SharedPreferencesUtil.getInstance(AddDataTestActivity.this).getString("code");
                Toast.makeText(AddDataTestActivity.this,"code:" + code,Toast.LENGTH_LONG).show();
                LogUtil.e("code:" + code);
            }
        });

    }
}
activity_add_data_test.xml



    
SharedPreferencesUtil
package com.gaojc.text.Utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;

public class SharedPreferencesUtil {

    private static SharedPreferences mSharedPreferences; //保存数据接口
    private static SharedPreferences.Editor mEditor; //Editor对象用来写入数据
    private static SharedPreferencesUtil mSharedPreferencesUtil;


    // 构造方法
    public SharedPreferencesUtil(Context context) {
        
        mSharedPreferences = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        // 获取Editor对象
        mEditor = mSharedPreferences.edit();
    }

    // 单例模式
    public static SharedPreferencesUtil getInstance(Context context) {
        if (mSharedPreferencesUtil == null) {
            mSharedPreferencesUtil = new SharedPreferencesUtil(context);
        }
        return mSharedPreferencesUtil;
    }

    // 存入数据
    public void putString(String key, String value) {
        if (TextUtils.isEmpty(value)) {
            value = "";
        }
        // apply():提交
        mEditor.putString(key, value).apply();
    }

    // 获取数据
    public String getString(String key) {
        return mSharedPreferences.getString(key, "");
    }
}

Log打印日志类(LogUtil) --------------------------------- SharedPreferences.Editor的commit()方法和apply()方法的区别

Android存储(SharedPreferences.Editor)commit()和apply()区别:
commit和apply虽然都是原子性 *** 作,但是原子的 *** 作不同,commit是原子提交到数据库,从提交数据到存在磁盘中都是同步过程;
而apply方法的原子 *** 作是原子提交到内存中,而非数据库,之后再异步提交数据到数据库中。
commit提交是同步过程,效率会比apply异步提交的速度慢,有返回值;apply没有返回值,无法知道存储是否失败。
在不关心提交结果是否成功的情况下,优先考虑apply方法。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5708198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存