美文网首页
Android 签名打包后的APP在后台运行时按icon导致程序

Android 签名打包后的APP在后台运行时按icon导致程序

作者: 再见信仰 | 来源:发表于2017-06-11 22:40 被阅读51次

    前言

    公司项目在完结时遇到一个问题,用正式签名打包后进行测试发现,在程序正常运行时按下home键返回桌面,此时再点击APP的icon并不会回到之前的状态,而是会从splash页开始重启程序,而从任务列表里打开APP则无此问题,在debug签名下也并没有遇到这个问题.后来查了查据说这是studio打包的bug.解决方法如下

    在你的启动页加入如下代码:

    if (!isTaskRoot()) {
                finish();
                return;
            }
    

    isTaskRoot()是判断当前activity是否是当前任务栈中的最早的(最后一个)activity,是返回true,否则返回false.

    我的理解是如果第一页不是任务栈中的最初的activity则说明任务栈之前已经存在,则finish掉当前页并return,此时则显示出当前任务栈最上层的activity,如果理解有误,还请各位朋友评论中指导下~~.

    这是isTaskRoot()方法及注释

    /**
         * Return whether this activity is the root of a task.  The root is the
         * first activity in a task.
         *
         * @return True if this is the root activity, else false.
         */
        public boolean isTaskRoot() {
            try {
                return ActivityManagerNative.getDefault().getTaskForActivity(mToken, true) >= 0;
            } catch (RemoteException e) {
                return false;
            }
        }
    

    相关文章

      网友评论

          本文标题:Android 签名打包后的APP在后台运行时按icon导致程序

          本文链接:https://www.haomeiwen.com/subject/jfskqxtx.html