我正在我的应用程序中创建登录。用户输入他的信息,我将其发送到网络服务以检查并获取他的 ID。现在我需要将它保存在我的应用程序中的某个位置,以便我可以检查他是否已登录。
那么这些信息应该保存在哪里?我知道每个应用程序都有它的设置,所以应该有这个信息?也许有人可以给我更多信息这是什么以及如何做。
谢谢。
我找到了这篇文章: 在 Android 应用程序中存储用户设置的最合适的方法是什么
我相信我的问题是重复的。但是,如果您有更多东西可以分享,那就太好了。
我正在我的应用程序中创建登录。用户输入他的信息,我将其发送到网络服务以检查并获取他的 ID。现在我需要将它保存在我的应用程序中的某个位置,以便我可以检查他是否已登录。
那么这些信息应该保存在哪里?我知道每个应用程序都有它的设置,所以应该有这个信息?也许有人可以给我更多信息这是什么以及如何做。
谢谢。
我找到了这篇文章: 在 Android 应用程序中存储用户设置的最合适的方法是什么
我相信我的问题是重复的。但是,如果您有更多东西可以分享,那就太好了。
首先使用此代码在 SharedPreferences 中保存用户信息,例如 uname 和密码。
SharedPreferences settings = getSharedPreferences("UserInfo", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("Username",txtUname.getText().toString());
editor.putString("Password",txtPWD.getText().toString());
editor.commit();
然后从下面的代码中获取 SharedPreferences
SharedPreferences settings = getSharedPreferences("UserInfo", 0);
txtUname.setText(settings.getString("Username", "").toString());
txtPWD.setText(settings.getString("Password", "").toString());
答案是使用应用程序类或共享首选项
我假设您可以轻松搜索 和的Application Class
示例SharedPreferences
SQLite Database
所以我提到我在哪里使用哪些选项
Application Class
当我得到任何东西(var、array、list、objects)只为应用程序的生命周期存储时。当它接近时(对于 Android 强制关闭),我使用应用程序类。
SharedPreferences
当我得到一些简短的信息(如 id、token、用户名、标志)时,我会使用它,只要应用程序停留在设备中,我就想存储它......并且每次启动应用程序时都需要使用这些信息。
SQLite Database
当有记录格式(行 - 列)的批量数据时,我用它来存储在数据库中,因此它变得易于存储、检索和操作。
您可以为此使用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();
}
}
如果用户从设置 -> 应用程序管理器 -> 您的应用程序 -> 清除数据中清除应用程序数据
那么所有保存在共享首选项中的数据都将被删除