重复实例化launcher Acitvity的问题

2016-05-05  本文已影响338人  Avalon1

应用明明没有被系统回收。按home键退出到桌面的时候会出现这种,点击应用图标会再次打开launcher Acitvity。我的项目的launcher是一个登陆。他会再次去到登录界面。在登录界面通过finish()杀死这个activity又能再次返回到之前按home键之前的样子。所以让我感觉很是奇怪。而且这种情况似乎并不是在所有的手机上都有出现,在我自己的手机以及模拟器都不会出现这样的情况。而在某些小米华为上面会出现。让我很郁闷。。。网上搜索了一些。但是似乎不能解决这个问题。

发现百度或者谷歌出来的一些处理方案

比如 

似乎没用啊不过

//        if(!this.isTaskRoot()) { //判断该Activity是不是任务空间的源Activity,“非”也就是说是被系统重新实例化出来

//            //如果你就放在launcher Activity中话,这里可以直接return了

//            Intent mainIntent=getIntent();

//            String action=mainIntent.getAction();

//            if(mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {

//                finish();

//                return;//finish()之后该活动会继续执行后面的代码,你可以logCat验证,加return避免可能的exception

//            }

//        }

部分机型有用

//        if ((getIntent().getFlags()& Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)!=0)

//        {

//            finish();

//            return;

//        }

还有一种在Index里面写一个静态常量。只要index没有被destroy就为true。在打开的时候判断下。如果这个常量为true就直接finish,return,似乎有效

上一篇下一篇

猜你喜欢

热点阅读