前一段时间做lancher升级,自己修改了一下packageinstaller.apk这个应用安装程序,整个过程都比较顺利,能正常检测更新,能正常正常下载,能正常安装,可最后在使用时才发现,只要经过升级的lancher,每次点击home,lancher都会重启。最后分析得知:
假设在没有运行任何其他程序的情况下.
首先lancher作为最底层的activity,在其后启动packageinstaller来安装升级自己。这时lancher会由于被覆盖而自行退出,导致packageinstaller成为了最底层的activity,而当安装完毕后,发home消息返回home(启动lancher)时没有finish掉packageinstaller的话,packageinstaller始终占着底层,所以每次按home键都相当于重新启动lancher(lancher设置为single)。
最后解决的方法是,在packageinstaller退出时,finish掉自己。
上面的内容有点像是在瞎猜,可能说的不很专业,但这大概是自己的理解,如果有人比较了解,还望批评指正。