【问题标题】:Keep the account info in all activities in android studio在 android studio 中的所有活动中保留帐户信息
【发布时间】:2016-05-30 01:38:27
【问题描述】:

我的应用程序只是一个管理数据库应用程序。我设置了一个远程 mysql 服务器,我的 android studio 应用程序使用 http post 请求连接到该服务器。

假设我想在所有活动中保留用户名、密码等帐户信息。现在我使用 putExtra() 来传输和保存所有活动中的帐户信息,但这似乎很复杂。每次我开始一个新的活动并且我需要 putextra() 来传输我的帐户信息时,有没有更简单更好的方法来完成这个?

【问题讨论】:

    标签: java android mysql android-intent android-studio


    【解决方案1】:

    许多选项:

    1) 使用静态变量创建一个全局类。

    2) 扩展Application类并在其中存储信息。

    2) 如果只是两三个参数,可以存储在共享首选项中。

    【讨论】:

    • 公共类帐户 { 公共静态字符串 eamil;公共静态字符串密码;第一种方法是这样的?
    • @KKKK:是的。类似的东西
    【解决方案2】:

    您可以通过多种方式完成它,例如将数据存储在 sharedpreference 或数据库中,或者简单地创建一个包含静态变量的类。

    要从共享首选项存储和获取数据,请使用此。

    public class MyPreference {
    
    SharedPreferences myPrefs;
    SharedPreferences.Editor prefEditor;
    Context context;
    
    // ------------------------------------------------------------------costructor
    public MyPreference(Context context) {
        this.context = context;
        myPrefs = context.getSharedPreferences("myPrefs", 0);
    }
    
    // ----------------------------------------------------------------------- user login
    
    public void setLogin() {
    
        prefEditor = myPrefs.edit();
        prefEditor.putBoolean("login", true);
        prefEditor.commit();
    
    }
    
    public boolean isLogin() {
        return myPrefs.getBoolean("login", false);
    }
    
    public void setPassword(String userPass) {
        prefEditor = myPrefs.edit();
        prefEditor.putString("user", userPass);
        prefEditor.commit();
    }
    
    public String getPassword() {
        return myPrefs.getString("user", "");
    }
    }
    

    【讨论】:

    • 我认为在每个活动中访问数据库的成本都很高。
    • 与从静态文件中获取数据相比,访问数据库本身的成本很高。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2017-09-15
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    相关资源
    最近更新 更多