【问题标题】:unset session android in class在课堂上取消会话 android
【发布时间】:2018-09-21 04:05:47
【问题描述】:

我有一个名为 Session.java 的文件类 然后我想创建销毁会话的方法 如何让它在方法内销毁会话?

public class Session {
    private SharedPreferences prefs;

    public Session(Context cntx) {
        // TODO Auto-generated constructor stub
        prefs = PreferenceManager.getDefaultSharedPreferences(cntx);
    }

    public String setusename(String userid) {
        prefs.edit().putString("userid", userid).commit();
        return userid;
    }

    public String getusename() {
        String userid = prefs.getString("userid","");
        return userid;
    }


}

感谢关注

【问题讨论】:

  • 您的意思是从共享首选项中删除用户 ID?
  • @AndroidUser 是的,这是真的
  • 创建一个类似于 clearUserId 的方法,代码将类似于 SharedPreferences.Editor editor_prefs; editor_prefs = prefs.edit(); editor_prefs.remove("userid"); editor_prefs.apply(); editor_prefs.commit();
  • @AndroidUser 好的,我会试试的,谢谢:D

标签: java android class session


【解决方案1】:

我希望这对你有用。

public class Session {

 // Declare variable.

 Context context;
 SharedPreferences.Editor editor;
 public static String PREF_NAME = "My_Pref";
 public static int PREF_MODE = 0;
 SharedPreferences prefs;

  public Session(Context context) {
    this.context = context;
    prefs = context.getSharedPreferences(PREF_NAME, PREF_MODE);
    editor = prefs.edit();
  }

  public String setusename(String userid) {
        editor.putString("userid", userid);
        editor.commit();
        return userid;
    }

    public String getusename() {
        return prefs.getString("userid",null);
    }

//Method for destroy session given below.

public void destroySession() {
        editor.clear();
        editor.commit();
    }
}

在Activity中这样调用这个方法,

 Session session= new Session(getContext());

//用于设置UseId

session.setusename("your id");

//销毁会话

  session.destroySession();

【讨论】:

  • 我应该删除这行“prefs = PreferenceManager.getDefaultSharedPreferences(cntx);”吗?
  • 我编辑了我的答案,请将其替换为您的 Session 课程。
【解决方案2】:

您可以创建另一个名为 clearSession 的方法来销毁会话

public class Session {
  private SharedPreferences prefs;

  public Session(Context cntx) {
      // TODO Auto-generated constructor stub
      prefs = PreferenceManager.getDefaultSharedPreferences(cntx);
  }

  public String setusename(String userid) {
      prefs.edit().putString("userid", userid).commit();
      return userid;
  }

  public String getusename() {
      String userid = prefs.getString("userid","");
      return userid;
  }

  public void clearSession() {
      // This will clear the session for all values
      prefs.edit().clear();
      prefs.edit().commit();
  }

}

【讨论】: