在开发中出现以下问题:
通过adb安装应用,可以正常把应用切换到后台,再通过点击桌面应用图标,可以恢复到之前的界面,
但是通过手机应用安装器安装的,在打开应用后,切换入后台,再次点击桌面应用图标,直接打开了启动Activity,但是点击返回,结束这个Acitivty后,之前的界面又出现了。
如果你的应用只有一个Activity,可以直接把launchMode设置为singleInstance,即单例模式即可,但是如果你是有多个Activity,且又不是单例模式,就是出现这个问题,简而言之,就是你的应用启动是A界面,打开后A界面->B界面,然后切换入后台,再打开应用,就会出现又出现A界面,但我们想要的是进入后台前的B界面。
我看网上说这是安卓的Bug,然后找到了解决方式:
以下是原文链接(如有冒犯,联系删除,谢谢!):
https://segmentfault.com/q/1010000006651576
这个事件触发的原因是:安装完程序点击打开后,点击HOME键退回到桌面,再点击图标进入程序
原因应该是intent携带的信息不一样导致的。
解决方法:
在你的启动Activity中加入以下逻辑处理:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//这是为了应用程序安装完后直接打开,按home键退出后,再次打开程序出现的BUG
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
finish();
return;
}
}