android按home键后,再回到app时,不能保持之前的状态

2023-09-07  本文已影响0人  见字如晤一

开发app时,发现一个很奇怪的现象,就是按home键后,再回到app时,总时不能回到按home键之前的状态,于是查了很多资料,也找了很久自己写的代码,最终得以解决!

我的app场景是这样的,默认启动页面是LoginActivity,登录时,需要根据不同的角色看到不同的主页,比如:HomeActivity和ZHomeActivity,在AndroidManifest.xml中设置就不赘述了。

我理解的出现这个问题的原因是,在HomeActivity界面中切换到非默认fragment后,按home键,再回到app时,会按AndroidManifest配置默认界面启动,即先调用LoginActivity,然后再根据是否登录来直接跳转到HomeActivity页面。初次进入app,我们已经在HomeActivity页了,此时堆栈的内容应该是:LoginActivity-》HomeActivity-》按home键,再回到app时,会再此创建新的LoginActivity。

找到问题,现在解决,在LoginActivity的onCreate()方法中实现以下代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!isTaskRoot()) {
            final Intent intent = getIntent();
            final String intentAction = intent.getAction();
            if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && intentAction != null && intentAction.equals(Intent
                    .ACTION_MAIN)) {
                finish();
                return;
            }
        }
        setContentView(R.layout.activity_login);
    }

自此,问题解决。

上一篇 下一篇

猜你喜欢

热点阅读