繁体   English   中英

如何在静态方法中检索共享的首选项值

[英]How to retrieve a shared preferences value in static method

这是我的共享首选项方法

 @Override
    protected void onStart() {
        super.onStart();
        SharedPreferences.Editor editor = sharedpreferences.edit();
        editor.putInt("APPSTATUS", 1);
        editor.putLong("eventId", eventMO.getEventId());
        editor.commit();
        Log.i("App", "start");
        AppActivityStatus.setActivityStarted();
        AppActivityStatus.setActivityContext(context);
    }

这里的eventid值存储在共享首选项中。 我需要在以下静态方法中获取此event_id值以比较event_id

 public static void messageHandler(final Context context ,final MessageMO messageMo) {

        UIHandler = new Handler(Looper.getMainLooper());

        UIHandler.post(new Runnable() {
            public void run() {
                //  SharedPreferences sharedPreferences1;
                Log.e("messageHandler", messageMo.getEventTitle());
                ChatMO chatMO = new ChatMO();
                chatMO.setMessage(messageMo.getMessage());
                chatMO.setSelf(0);
                chatMO.setFromName(messageMo.getfromUserName());
                chatMO.setDate(messageMo.getDate());
                chatMO.setEvent_id(messageMo.getEventId());
                Log.e("handler", "eventid" + chatMO.getEvent_id());
                Log.e("handler", "date" + chatMO.getDate());
                listChatMessageObjectses.add(chatMO);
                Log.e("handler", "listmessage" + listChatMessageObjectses);

                    }
        });
    }

您可以使用下面的代码片段读取这些值。 您需要上下文来获取可在本地存储在同一类中的首选项实例。

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);

int appStatus = pref.getInt("APPSTATUS", 1);

long eventId = pref.getLong("eventId", 0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM