【问题标题】:What is way to show authorization activity instead of main app activity?显示授权活动而不是主要应用程序活动的方法是什么?
【发布时间】:2012-04-17 20:33:03
【问题描述】:

如果用户未授权,我需要显示授权活动。

我在下一个代码中使用了 Launcher 活动(没有历史标志):

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    if (Autorization.isAutorized()) 
    {
        Intent newIntent = new Intent(this, MainActivity.class);
        // add some flags????
        startActivity(newIntent);
    }
    else startActivity(new Intent(this, AutorizationActivity.class));
}

autorization 完成时,AutorizationActivityFLAG_ACTIVITY_CLEAR_TOP 启动Launcher,然后Launcher 启动MainActivity,但我有一些backstack 问题。通过按下MainActivity android 再次显示AutorizationActivity 而不是隐藏任务。

我必须使用哪些标志来防止从MainActivity 回到AutorizationActivity

【问题讨论】:

  • 我没有删除任何历史标志并添加了finish();启动 MainActivity 方法后。方法正确吗?
  • 可能有效,也可能无效..设置标志是可靠的方法..
  • 这是工作!我还添加了 AutorizationActivity 下一个代码: public void onBackPressed() { moveTaskToBack(true); }

标签: android android-activity task back flags


【解决方案1】:

有几种方法可以做到这一点,最简单的方法是使用AndroidManifest.xml 文件。只需在授权活动中添加android:noHistory = "true"即可。

还请看以下问题:removing an activity from the history stack

【讨论】:

【解决方案2】:

尝试在 Manifest 中为 AuthorizationActivity 设置标志,例如 this.... 现在您的标志仅适用于 MainActivity 而不是当前 Activity.. 所以改为在 Manifest 中设置..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多