应用程序重新启动从不同的启动源将其带到前台

时间:2014-01-08 14:13:34

标签: android android-intent

您好我遇到了这个问题。 我的应用程序有3个活动:

SplashScreenActivity,LoginScreenActivity,ViewPagerActivity(包含3个片段)。 当我将apk放入移动SD卡并使用packagemanager安装并打开时。我的应用程序启动就好了。 问题 - 但是,现在如果我按下主页按钮并再次从Apps抽屉/主屏幕启动应用程序。该应用程序似乎重新启动,我必须完成Splash和LoginScreen的整个流程。

如果我第一次从Apps抽屉本身启动应用程序,则不会出现此问题。如果我长按主页按钮并从最近的应用程序列表中选择应用程序,则应用程序也会正常恢复。

对于参考,我使用这些标志启动活动

防溅>登录

Intent intent=new Intent(SplashScreen.this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

LoginActivity-> ViewPagerActivity

Intent intent = new Intent(context, ViewPagerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

3 个答案:

答案 0 :(得分:0)

主屏幕图标会启动您在清单中声明为MAIN ... LAUNCHER活动的所有活动。通常,清单中的启动活动应该是您应用的主要活动。从那里,您可以在需要时调用启动画面和登录活动。

答案 1 :(得分:0)

删除这些标记或完整的代码行

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

答案 2 :(得分:0)

使用包管理器启动时,这似乎是一个问题。 https://code.google.com/p/android/issues/detail?id=2373

if (!isTaskRoot()) {
            Intent intent = getIntent();
            String action = intent.getAction();
            if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && action != null && action.equals(Intent.ACTION_MAIN)) {
                finish();
                return;
            }
        }