第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Android 應(yīng)用程序被殺死時保留 SharedPreferences 值

如何在 Android 應(yīng)用程序被殺死時保留 SharedPreferences 值

皈依舞 2023-03-17 16:45:22
我正在做一個安卓項目。我想在 android 應(yīng)用程序被殺死時推送通知。所以,我正在創(chuàng)建 BroadcastReceiver 和 Service 類。他們在工作。但是,我有一個問題。這個問題是,當(dāng)用戶登錄我的應(yīng)用程序時;我用 SharedPreferences 存儲這個值。但是,當(dāng)我終止應(yīng)用程序時,此 SharedPreferences 取“空”值。java.lang.NullPointerException:嘗試在空對象引用上調(diào)用接口方法“java.lang.String android.content.SharedPreferences.getString(java.lang.String, java.lang.String)”當(dāng)我搜索時,人們說:“editor.clear();” 但它不起作用。我能做些什么?我的登錄類:public static SharedPreferences UserDetailsSP,UserDetailsSP = getSharedPreferences("UserDetails", MODE_PRIVATE);SharedPreferences.Editor UserDetailsPreferencessEdit = UserDetailsSP .edit();UserDetailsPreferencessEdit.clear();UserDetailsPreferencessEdit.putString("UserName", A);UserDetailsPreferencessEdit.commit();我用這個調(diào)用其他java類:String a1 = Login.UserDetailsSP.getString("UserName","A");
查看完整描述

2 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

您可以像這樣創(chuàng)建共享首選項類:-


    public class AppPrefrences {


            private static SharedPreferences mPrefs;

            private static SharedPreferences.Editor mPrefsEditor;


            public static boolean isUserLoggedOut(Context ctx) {

                mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);

                return mPrefs.getBoolean("id_logged_in", true);

            }


            public static void setUserLoggedOut(Context ctx, Boolean value) {

                mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);

                mPrefsEditor = mPrefs.edit();

                mPrefsEditor.putBoolean("id_logged_in", value);

                mPrefsEditor.commit();

            }


    public static String getUserName(Context ctx) {

            mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);

            return mPrefs.getString("userName", "");

        }


        public static void setUserName(Context ctx, String value) {

            mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);

            mPrefsEditor = mPrefs.edit();

            mPrefsEditor.putString("userName", value);

            mPrefsEditor.commit();

        }


public static void clearAllPreferences(Context ctx) {

        mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);

        mPrefsEditor = mPrefs.edit();

        mPrefsEditor.clear();

        mPrefsEditor.commit();

    }

        }

當(dāng)您登錄您的應(yīng)用程序時,請像這樣設(shè)置值:-


setUserLoggedOut(YourActivity.class, false);

并像這樣在啟動畫面上設(shè)置檢查:-


if (isUserLoggedOut(StartActivity.this)) {

                    startActivity(new Intent(StartActivity.this, LoginActivity.class));

                    finish();

                } else {

                    startActivity(new Intent(StartActivity.this, MainActivity.class));

                    finish();

                }


查看完整回答
反對 回復(fù) 2023-03-17
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊

You this approach create a SessionManager class

public class AppPrefrences {


        private static SharedPreferences mPrefs;

        private static SharedPreferences.Editor mPrefsEditor;

public AppPrefrences(Context context)

{

    int PRIVATE_MODE = 0;

    pref = context.getSharedPreferences("UserDetails", PRIVATE_MODE);

    editor = pref.edit();

    editor.apply();

}


        public static boolean isUserLoggedOut() {


            return mPrefs.getBoolean("id_logged_in", false);

        }


        public static void setUserLoggedOut(Boolean value) {


            mPrefsEditor.putBoolean("id_logged_in", value);

            mPrefsEditor.commit();

        }


public static String getUserName() {


        return mPrefs.getString("userName", "");

    }


    public static void setUserName(String value) {


        mPrefsEditor.putString("userName", value);

        mPrefsEditor.commit();

    }


    public static void clearAllPreferences()

    {


       mPrefsEditor.clear();

       mPrefsEditor.commit();

   }

  }



Inside your activity

AppPrefrences sess = new AppPrefrences(this);

sess.setUserName("A");


查看完整回答
反對 回復(fù) 2023-03-17
  • 2 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號