ユーザーが登録/ログインする必要があるAndroidアプリケーションに取り組んでいますが、これはうまく機能しますが、ユーザーがログアウトしようとすると問題が発生します。
現在、ユーザーがログアウトボタンを押すと、ログインページに戻りますが、アプリから離れてからアプリに戻ると(したがって、まだメモリに残っています)、再度ログインせずにページに戻りますログイン後に表示されます。
ユーザーがログインしているかどうかを記録するために sharedpreference を使用し、表示する画面を決定するために最初に開始するスプラッシュ アクティビティを使用しました。
public class Splash extends SherlockActivity {
public static final String PREFS_NAME = "PrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean loggedin = settings.getBoolean("loggedIn", false);
if (loggedin){
Intent intent = new Intent(this, MyLists.class);
startActivity(intent);
}
else{
Intent intent = new Intent(this, LogIn.class);
startActivity(intent);
}
}
}
そして、私のログアウトボタンは次のようになります
private OnClickListener OnClick_logout = new OnClickListener() {
public void onClick(View v) {
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("loggedIn", false);
editor.putString("email", "");
editor.putString("password", "");
editor.commit();
db.clearLists();
db.clearProducts();
Intent intent = new Intent(v.getContext(), Splash.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
v.getContext().startActivity(intent);
}
};
ボタンが押された後、スプラッシュアクティビティは現在ユーザーをログイン画面に連れて行きますが、私が言うように、アプリを閉じて戻ってくると、ユーザーは「MyLists」アクティビティに連れて行かれます。