应用退到后台,点击图标切回时,又重新打开应用,没有恢复到退出时的页面

问题表述:

    开发的一款应用,在进入到某一个页面时,用点击Home键,应用退到后台,屏幕显示桌面,再点击任务后台列表重新打开应用,没有问题,但是如果换成点击桌面上的应用图标,竟然重新从开屏页开始启动了应用,通常情况下应该也会恢复到退出时的页面的。

问题原因:

     后来发现导致整个问题的原因是:在启动页面里加上android:launchMode="singleTask"导致的。

      android:screenOrientation="portrait"

      android:theme="@style/splash_theme"

      android:launchMode="singleTask" >

   

     

     

     

解决思路:

1、直接删除这一行,问题就会顺利解决。

如果必须要使用single Task,还可以如下解决:

2、在启动Acticity的OnCreate生命周期方法中添加如下代码

   @Override

   public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     // 如果启动页是从后台进入前台,直接关闭启动页面,不显示

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

      finsh();

      return;

     }  

   }

3、还可以判断启动时,启动页是否在最上层,如果不在,就说明是从后台进入的。

@Override  

public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

   // Acticity自动的isTaskRoot()判断,启动Acticity启动时,是否在最上层,第一次启动是应该    是任务栈里空的,只有启动页一个Acticity,所以一定是在最上层的,反之则是从后台启动。

    if (!this.isTaskRoot()) {

       finish();

       return ;

     }

}

你可能感兴趣的:(应用退到后台,点击图标切回时,又重新打开应用,没有恢复到退出时的页面)