好久没有写博客了,最近事情比较多。
下面要写的是一个在项目中遇到的问题。
我们下载一个apk之后,手机安装点击下一步到一个界面,会提示我们是保存还是打开。如果我们是选择保存,然后在桌面上打开这个app,那么没有任何问题,但是如果我们是直接点击的打开,那么这个时候就会一个怪异的情况了,就是我们通常自己写的一个安卓项目,用这种方式打开之后,点击home键,然后在启动这个应用,他会从app的入口重新进入,而不是直接到我们点击home键的时候切换的activity。
通常我们在开发的时候,是直接运行项目,不会遇到一种怪异的情况。我们可以把我们项目中的apk给copy出来,按照上面的方式试一下,是有这种情况的。刚遇到这个问题的时候感觉没有一点思路,后来在大神的指导之下才找到问题的原因。原来是goole的安装应用的两种启动方式不同。
解决这个问题的办法就是,我们在基类的activity中启动一个广播,如果是用打开方式安装的app,监听到这个广播之后,就把项目入口的类finish掉,然后之前的类resume一下就可以了。
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0)
{
// 在这里发送广播,唤醒之前启动的Activity
sendOpenFromFrontBoradcastReceiver();
finish();
return;
}