问题:
安装系统SD卡里面的apk或者原有的程序更新版本的时候,会遇到升级安装成功之后的一个选择——“打开”和“完成”,点击完成没有问题,但是,如果点击了"打开",然后按Home键,从应用程序列表里面选择应用程序图标进入,这个时候就会重新启动了一个应用程序,之后的操作就会出现混乱等问题。
分析:
刚开始我还以为是在程序更新的时候导致的,可经过后来一步一步缩小范围,发现只要是点击了“打开”都会出现问题,再测试了一下新浪微博、QQ,发现他们也存在这个问题。为何会出现这种情况呢? 原因是,第一个启动的Activity的launchMode不是singleTop的,在安装完成点击“打开”的时候不会去清理一下Activity的管理队列,那么点击“打开”就把新开的Activity放在原来队列的后面,因此,就会出现上面的问题。
解决:
把第一个启动的Avctivity的launchMode改成singleTop的,但是要注意:改成了singleTop之后就不能关掉,否则就不会生效。那这样是不是不好呢?可以在你所有的应用程序之前加一个没有界面的Activity专门解决这个问题。
当然,也可以尝试监听应用程序安装完成的事件,在那里把队列彻底干掉。
根本上还是android的机制问题,像新浪微博、QQ都没有解决这个问题,不一定是解决不了,有可能是“就那样去吧,这就是android”。