現在、Android アプリケーションを 1 つ作成しようとしています。これは、何らかの「X」コンセプトになると思います。そのため、ログイン画面を 1 つ作成しています。やりたいことは、モバイルでそのアプリケーションにログインすると、そのアプリケーションにアクセスしようとするたびに常にログイン状態になるということです。
例えば、携帯電話のFacebook、Gメール、Yahooなど
そのために何をすべきでしょうか?
ベストアンサー1
自動ログイン機能には Shared Preference を使用します。ユーザーがアプリケーションにログインすると、ログイン ステータスが sharedPreference に保存され、ユーザーがログアウトすると sharedPreference がクリアされます。
ユーザーがアプリケーションに入るたびに、共有設定からのユーザー ステータスが true であるかどうかを確認します。そうでない場合は再度ログインする必要はありません。そうでない場合は、ログイン ページに直接移動します。
これを実現するには、まずクラスを作成し、このクラスで、sharedpreference の値の取得と設定に関するすべての関数を記述する必要があります。以下のコードをご覧ください。
public class SaveSharedPreference
{
static final String PREF_USER_NAME= "username";
static SharedPreferences getSharedPreferences(Context ctx) {
return PreferenceManager.getDefaultSharedPreferences(ctx);
}
public static void setUserName(Context ctx, String userName)
{
Editor editor = getSharedPreferences(ctx).edit();
editor.putString(PREF_USER_NAME, userName);
editor.commit();
}
public static String getUserName(Context ctx)
{
return getSharedPreferences(ctx).getString(PREF_USER_NAME, "");
}
}
メインアクティビティ(ログイン時にユーザーがリダイレクトされる「アクティビティ」)で最初にチェックします
if(SaveSharedPreference.getUserName(MainActivity.this).length() == 0)
{
// call Login Activity
}
else
{
// Stay at the current activity.
}
ログイン アクティビティでは、ユーザーのログインが成功した場合、setUserName() 関数を使用して UserName を設定します。