android中的注销功能

android中的注销功能,android,logout,Android,Logout,我正在制作一种社交网络应用程序。我正在it中实现注销功能。 在注销按钮点击它应该导航到登录屏幕,但它现在导航到主页屏幕 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.package.ACTION_LOGOUT"); registerReceiver(new BroadcastReceiver() { public void onReceive(Context contex

我正在制作一种社交网络应用程序。我正在it中实现注销功能。 在注销按钮点击它应该导航到登录屏幕,但它现在导航到主页屏幕

  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);

只需给出登录活动的意图,并在意图中添加标志

inten1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

它将清除所有活动并导航到您的登录页面。

这是一个堆栈问题。你需要处理它。我找到的最佳解决方案是,在应用程序运行时,在堆栈中保留单个活动,并且在注销时,只有登录屏幕才会在堆栈中,如果用户按下“后退”按钮,他将看到主屏幕。

使用以下方法注销

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

它可能会帮助您

对我有效的方法是在内部使用某种全局方法跟踪您的登录状态:

public boolean loggedin = false;
然后,在所有活动中,如果您注销,请覆盖onResume()和finish():

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

首先对代码进行以下更改

Intent intent = new Intent(getApplicationContext(),Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
然后移除finish()写入广播接收器中。 祝你好运。

试试这个:

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();

我已经这样做了。它再次导航到登录屏幕的主页安装。然后,当导航到“活动”旁边时,您将完成所有活动,您需要检查代码,查看启动活动时是否有finish()行。传递intnet=new Intent(getApplicationContext(),LoginActivity.class)这就是现在这真的很奇怪,你是在叫那个意图旗吗?我真的要看代码了…哈哈!!!!我也试过这个。。但是,它再次导航到主页屏幕Hi ekjyot当您从主页活动前进时,请完成您的主页。Hi ekjyot我已经更新了我的答案,请尝试一下,我相信它会起作用