日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SharedPreferences记住用户密码 态判断应用是否首次启动等

發布時間:2025/4/5 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SharedPreferences记住用户密码 态判断应用是否首次启动等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Android SharedPreferences的簡介

SharedPreferences是一種輕型的Android數據存儲方式,它的本質是基于XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。比較經典的使用方式例如用戶輸入框對過往登錄賬戶的存儲。實現SharedPreferences存儲的步驟如下:
1、根據Context獲取SharedPreferences對象
2、利用edit()方法獲取Editor對象。
3、通過Editor對象存儲key-value鍵值對數據。
4、通過commit()方法提交數據。

二、SharedPreferences和Editor 的關系

1、SharedPreferences

public abstract SharedPreferences getSharedPreferences (String name, int mode)

方法得到一個sharedpreferences對象,參數name是preference文件的名字,mode則是方式,默認為0。

2、Editor

Editor可用于SharedPreferences數據的添加,刪除,修改和查詢。

Public abstract SharedPreferences.Editor putString (String key,String value)

通過執行commit()或是apply()方法,將會應用更改。


實例一記住密碼功能的實現:

import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.view.View; import android.widget.CheckBox;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 讀取sharedprefs中的值,并設置給對應的控件readShared();}private void readShared() {// 1.獲取sharedprefs對象實例SharedPreferences shared = getSharedPreferences("sharedprefs",MODE_PRIVATE);// 2.利用sharedprefs實例按key-value形式讀取對應值boolean value=shared.getBoolean("remind", false);// 3.把讀取出來的值設置給對應控件或對象CheckBox cb=(CheckBox) findViewById(R.id.cb);cb.setChecked(value);}// 點擊記住密碼public void remind(View view) {// 向sharedpresf寫入當前CheckBox的狀態// 1.獲取sharedprefs對象實例SharedPreferences shared = getSharedPreferences("sharedprefs",MODE_PRIVATE);// 2.利用sharedperfs實例獲取Editor對象Editor editor = shared.edit();// 3.利用Editor寫入對應的值:key-valueeditor.putBoolean("remind", ((CheckBox) view).isChecked());// 4.提交:commiteditor.commit();} }

實例二:判斷應用是否第一次啟動

import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.widget.TextView;/*** 每次進入該Activity時,判斷sharedprefs中是否有寫入過值* * 如果已經寫過了,說明已經啟動過* * 如果沒有寫,則說明沒啟動過,再寫入一個值* */ public class MainActivity extends Activity {TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = (TextView) findViewById(R.id.tv);// 先讀再寫readShared();}private void readShared() {// 1.獲取sharedprefs對象SharedPreferences shared = getSharedPreferences("firstRun",MODE_PRIVATE);// 2.讀取對應值,如果沒讀取到該值,表明是第一次啟動boolean isFirst = shared.getBoolean("isFirst", true);// 設置一段文本給TextViewif (isFirst) {tv.setText("這是第一次啟動");// 向sharedprefs寫入值,表明已經啟動過了// 獲取Editor對象Editor editor = shared.edit();// 寫值editor.putBoolean("isFirst", false);// commiteditor.commit();} else {tv.setText("已經啟動過了");}}

使用SharedPreferences的注意點 :

如果使用SharedPreferences用于數據存取,大部分人喜歡使用如下代碼:

public void writeSharedprefs(int pos) {SharedPreferences preferences = getApplicationContext().getSharedPreferences("test", Context.MODE_PRIVATE);SharedPreferences.Editor editor = preferences.edit();editor.putInt("pos", pos);editor.commit();}public int writeSharedprefs() {SharedPreferences preferences = getApplicationContext().getSharedPreferences("test", Context.MODE_PRIVATE);int pos = preferences.getInt("pos", 0);return pos; }

但很多人忽略了一點,就是跨進程使用的時候,你就會發現從SharedPreferences讀出來的數據永遠都是第一次寫入的數據。 舉例,例如播放器是一個獨立進程,另外某個Activity是另一個獨立進程,播放器與這個Activity利用SharedPreferences通信的時候,如果使用MODE_PRIVATE操作模式,就會出錯。


所以,如果跨進程使用SharedPreferences的使用,需要使用MODE_MULTI_PROCESS模式,代碼如下:
public void writeSharedprefs(int pos) {

SharedPreferences preferences = getApplicationContext().getSharedPreferences("test", Context.MODE_MULTI_PROCESS);SharedPreferences.Editor editor = preferences.edit();editor.putInt("pos", pos);editor.commit();}public int writeSharedprefs() {SharedPreferences preferences = getApplicationContext().getSharedPreferences("test", Context.MODE_MULTI_PROCESS);int pos = preferences.getInt("pos", 0);return pos; }

總結

以上是生活随笔為你收集整理的SharedPreferences记住用户密码 态判断应用是否首次启动等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。