【问题标题】:Restarting minimized android application重新启动最小化的android应用程序
【发布时间】:2014-09-11 07:20:58
【问题描述】:

在我的应用程序中,当用户单击注销按钮时,应用程序将他再次带到登录屏幕,当他从该登录屏幕按下返回按钮时,toast 出现“你必须登录才能继续。

我这样做是为了停止后退导航,因为如果后退导航是可能的,那么他将使之前的所有活动都保持活跃。 之后,当我按下 HOME 按钮退出应用程序时,它会最小化应用程序,每当我启动我的应用程序时,它都会从登录屏幕启动。

我需要它从初始屏幕启动它.. 我该怎么办?
我已在登录屏幕中使用此代码使返回导航变得不可能。

      @Override
 public void onBackPressed() {


    Toast.makeText(getApplicationContext(), "You Must login to continue!", Toast.LENGTH_LONG).show();

    }

使用“HOME BUTTON”退出应用程序是不是一个坏主意?

【问题讨论】:

    标签: android login exit logout restart


    【解决方案1】:

    这不是您应该如何处理“lougout”的方式 - 您有很多选择,但永远不要更改“BACK”的功能。

    您可以考虑使用“startActivityForResult”,然后为 LOGOUT 设置一个结果代码,该代码在“登录”后在每个活动中检查,以便您可以控制注销。

    此外,您可以有一个注销屏幕,该屏幕启动您的任务堆栈,如果用户未登录,则直接进入“登录”,如果用户登录,则直接进入主页。然后如果调用了“logout”,清空任务栈,把“logout”放在最上面,它应该完成并只进入“login”。

    类似这样的:

    Intent logoutIntent = new Intent(c.get(), Authenticate.class);
    logoutIntent.putExtra(AUTH_STATUS, false);
    logoutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP
          | Intent.FLAG_ACTIVITY_CLEAR_TOP);        
    startActivity(logoutIntent);
    

    检查你的清单是一个单一的任务活动:

        <activity   android:name=".Authenticate"
                    android:launchMode="singleTask"
                    android:label="@string/AuthenticateActName">
        </activity>
    

    然后在身份验证中确保您的 LOGIN 变量重置并转到您的身份验证屏幕。

    您可能会想出其他方法,但这是对我有用的两个建议。

    【讨论】:

    • 每当调用新活动时,我都会使用清除堆栈的方法,但它会停止返回导航LOGOUT 上的所有活动 ..
    • 你能在一些代码的帮助下解释你的答案,以便我能以更好的方式得到它..拜托:)
    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多