【问题标题】:Logout functionality in androidandroid中的注销功能
【发布时间】:2023-04-02 00:55:01
【问题描述】:

我正在制作一种社交网络应用程序。我正在其中实现注销功能。 在注销按钮上单击它应该导航到登录屏幕,但现在它正在导航到主页屏幕。我正在使用以下代码进行注销..

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

【问题讨论】:

    标签: android logout


    【解决方案1】:

    只需将意图赋予您的登录活动并将标志置于意图中

    inten1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    

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

    【讨论】:

    • 我已经这样做了。它再次导航到主页而不是登录屏幕
    • 那么你正在完成所有活动,同时导航到活动旁边,你需要检查你的代码,看看你开始活动时是否有完成()行。
    • 通过 intnet= new Intent(getApplicationContext(),LoginActivity.class) 就可以了
    • 现在真的很奇怪,你是在调用那个意图标志吗?我真的要看看代码......大声笑!!!!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      使用以下方式退出。

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

      也许对你有帮助

      【讨论】:

      • 我也试过这个.. 但它再次导航到主页屏幕
      • 嗨 ekjyot 当您从主页活动向前移动时完成您的主页。
      • 嗨,ekjyot,我已经更新了我的答案,请尝试一下,我确定它有效
      【解决方案4】:

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

      public boolean loggedin = false;
      

      然后在所有活动中,如果您已注销,则覆盖 onResume() 和 finish():

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

      【讨论】:

        【解决方案5】:

        首先对您的代码进行这些更改

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

        然后删除写在广播接收器中的 finish();。 祝你好运。

        【讨论】:

          【解决方案6】:

          试试这个:

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

          【讨论】:

            猜你喜欢
            • 2012-05-03
            • 2013-05-10
            • 2011-07-29
            • 2017-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多