/ /アンドロイドのログアウト機能 - アンドロイド、ログアウト

アンドロイドのログアウト機能 - アンドロイド、ログアウト

私は一種のソーシャルネットワーキングアプリを作っています。 私はそれにログアウト機能を実装しています。 Logoutボタンをクリックすると、ログイン画面に移動するはずですが、代わりにホームページ画面に移動します。ログアウトには次のコードを使用しています。

  IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.package.ACTION_LOGOUT");
registerReceiver(new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {

System.out.println("onReceive Log out in progress");
Intent intent1 = new Intent(getApplicationContext(),          Login.class);
startActivity(intent1);
finish();
}
}, intentFilter);

回答:

回答№1は6

以下のログアウトを使用してください。

yourintent.setflag(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);

それはあなたを助けるかもしれません


回答№2については4

あなたのログイン活動にインテントを与え、フラグをインテントに入れるだけです

inten1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

すべてのアクティビティをクリアして、ログインページに移動します。


答え№3の2

これはスタックの問題です。あなたはそれを処理する必要があります。 私が見つけた最良の解決策は、アプリケーションが実行されているときにスタック内に単一のアクティビティを維持し、ログイン画面だけがスタックになり、ユーザーが戻るボタンを押すとホーム画面が表示されることです。


答え№4の2

自分のログイン状態を内部的に追跡しています。

public boolean loggedin = false;

すべてのアクティビティで、ログアウトした場合はonResume()およびfinish()をオーバーライドします。

@Override
public void onResume() {
super.onResume();
if (!loggedin)
finish();
}

回答№5の場合は1

これを試して:

Intent intent = new Intent(getApplicationContext(), Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
Toast.makeText(this, "Signed out", Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();

答え№6の場合は0

まずこれらのコードを変更します

Intent intent = new Intent(getApplicationContext(),Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

その後、 finish(); あなたの放送受信機の中に書かれている。 運が良かった。