在应用设置中保存用户信息

Str*_*boy 27 android

我在我的应用程序中创建登录.用户输入他的信息我将其发送到Web服务以检查并获取他的ID.现在我需要将它保存在我的应用程序中,我可以检查他是否登录.

那么这个信息应该保存在哪里?我知道每个应用都有它的设置所以应该有这个信息?也许有人可以给我更多信息这是怎么做的.

谢谢.

我发现这篇文章: 在Android应用程序中存储用户设置的最合适方法是什么

我相信我的问题是重复的.但如果你有更多的东西可以分享,那就太好了.

V.J*_*.J. 59

首先使用此代码在SharedPreferences中保存用户信息,例如uname和password.

SharedPreferences settings = getSharedPreferences("UserInfo", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("Username",txtUname.getText().toString());
editor.putString("Password",txtPWD.getText().toString());
editor.commit();
Run Code Online (Sandbox Code Playgroud)

然后从下面的代码中获取SharedPreferences

SharedPreferences settings = getSharedPreferences("UserInfo", 0);
txtUname.setText(settings.getString("Username", "").toString());
txtPWD.setText(settings.getString("Password", "").toString());
Run Code Online (Sandbox Code Playgroud)

  • 对于任何想知道安全性的人,请不要将您的用户密码存储在SharedPreferences中. (26认同)
  • 绝不应该在应用程序或数据库中保存普通密码.您可以将其哈希,而不是保存纯文本.当您需要验证给定的userpasword时,您可以以相同的方式对其进行散列并比较散列.这种方式比纯文本要好得多. (6认同)
  • 对于任何想了解兼容性的人,所有当前API版本(API V1中已添加)都支持此功能。可以在以下位置找到SharedPreferences文档:http://developer.android.com/reference/android/content/SharedPreferences.html (2认同)

MKJ*_*ekh 26

答案是使用应用程序类或共享首选项

我想你可以轻松地搜索为例Application Class,SharedPreferencesSQLite Database

所以我提到我在哪里使用哪个选项

Application Class

当我得到任何东西(var,数组,列表,对象)只存储应用程序的LifeTime时...当它接近时(对于Android Force Close)我使用Application Class.

SharedPreferences

当我得到一些简短的信息,比如id,token,username,flags时,我会使用它,只要应用程序停留在Device中,我想存储它,并且每次启动Application时都需要使用这些信息.

SQLite Database

当记录格式(行 - 列)中存在批量数据时,我将其用于存储在数据库中,以便于存储,检索和操作.


ari*_*ayu 7

您可以使用SharedPreferences.

引用中的一些代码(取自文档):

public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!
      editor.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)


Roh*_*ain 5

如果用户从设置中清除应用程序数据 -> 应用程序管理器 -> 您的应用程序 -> 清除数据

那么所有保存在共享首选项中的数据都将被删除

  • 是的,它确认了,数据库也被擦除了。确认对话框告诉我所有“文件、设置、帐户、数据库等”将被永久删除。每天学些新东西... (5认同)
  • 哦真的吗?哇谢谢你指出这一点。我想知道这是否也适用于 SQLite 数据库 (3认同)