app跳转多个页面,点击home后的问题

app跳转多个页面,点击home后,回到桌面应用图标并点击app图标后准确显示被home之前页面

在写该博客时啰嗦几句,本人第一次写博客,提起笔不知道语句组织,一时无法下手,作为一个理科生很直白的对白。后来想想写技术博客不必要那么很在意文采,在乎逻辑性结构。好了不罗嗦了言归正传,对于这个问题需要android 开发者必须了解Activity这个重要组件,务必有很牢靠的基础与一定的工作经验。很多初入android app开发者,可能只完成需求所定的功能,在app 上线后客户反馈的bug有很多。比如开发的app在home键与app桌面应用图标启动之间有很矛盾的关系。如点击到桌面图标启动已在后台运行的app之间的启动顺序,正常情况下是点击桌面图标之后app会重新启动重新按照堆栈的顺序启动。这与我们想要的用户体验有很大的矛盾,对用户体验不是很友好。这样app给用户带来的体验就大打折扣了。
遇到问题务必要分析道原理,从根本上解决问题。这样有助于很快速的处理问题,才能提高工作效率。对于Activity这个组件要了解其生命周期的原理,并了解我们开发中的常用的启动模式 standard(标准模式默认)、singleTop、singleTask、singleInstance四种。具体解决方法如下:

  • 第一步:在清单文件中设置application属性为持久性 如android:persistent=”true” 防止多开app后台很多被干掉,设置为后台开挂模式

  • 第二步:查看启动的第一个Activity的启动模式,一般情况下设置为默认启动模式standard ,如有其他singleTop、singleTask、singleInstance务必改为standard

  • 第三布:对于是否准确去鉴定Activity启动标志,调试它会不会从后台跳转前台,若成立调用finish(), 系统后台逻辑会查询启动的历史堆栈顺序的前一个活动的页面,去执行该Activity,所以就返回到复原的状态下回滚到了home键之前的状态页面。具体代码

@Overried
protected void onCreate(Bundle instanceState){
    super.onCreate(instanceState);
    if((getIntent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){
        finish();
        return;
    }//重要片段
    setContentView(R.layout.xxxxx); 
    //无关代码...
}

好了到这里该问题可以顺利解决了。。。。

你可能感兴趣的:(移动开发问题分析)