解决应用在华为等手机直接被后台杀死的问题

表象:在开发时,遇到应用莫名其妙被后台干掉,导致应用每次都需要进行重启,尤其在华为手机上比较严重。

其实应该仔细观察,这种情况分两种,一种是被杀死,一种其实是因为栈的关系,进入了引导页或主界面而不是应用被后台杀死,所以两种情况分别对应如下的两种处理方式:

1.应用被杀死:我们可以打开华为手机中的【手机管家】,点击【启动管理】,然后选择我们想要让它一直启动的软件,根据自己的需要将三个软件启动的相关开关打开就可以了,这样被我们选中的软件就不会被后台清理掉。

解决应用在华为等手机直接被后台杀死的问题_第1张图片

2.栈的问题解决方法:

 

判断是否被重复实例化,来决定是否加载该界面并执行其方法,避免在点击返回键的时候重复出现界面,另外添加判断,排除应用通过程序入口正常启动的情况,避免每次该界面都不会被执行;

在App的基类BaseActivity添加方法:

@Override    public boolean moveTaskToBack(boolean nRoot) {        return super.moveTaskToBack(true);    }

 

 

 

然后在App的启动页onCreate()方法里添加代码:

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

 

你可能感兴趣的:(安卓)