首页 > 代码库 > android:一个Open键引发的问题!!
android:一个Open键引发的问题!!
1.问题简介
首先描述一下问题,当我们安装完APP的时候,界面会显示两个按钮,一个完成键,一个Open键,点击Open键之后,进入应用。此时,我们点击HOME键,程序将会后台。然后再点击该桌面上应用程序的图标,巨大的BUG出现了:app会重新启动!而不是将原来的界面onresume!如果你的应用对多次启动不敏感,这道没什么,但是,如果你的应用对多次启动很敏感,你就必须做处理了。
2.解决方案
首先分析问题成因,在android目前的系统下(最新的为4.4.3),点击Open键和点击图标启动时,Intent的参数传递的不一样,activity的启动方式不同,导致上述问题的产生。但是,由于启动参数由系统设定,我们不好改变。那我们的思路就有两个:
1.第二次启动的时候,把第一次启动的杀掉
2.第二次启动的时候,将第一次启动的Activity唤醒,第二次启动关闭。
一般我们选择第二种,因此,我们就有了如下思路:
1.在启动第一个Activity的时候,判断启动方式是不是从点击OPEN键启动的.
2.在需要唤醒的activity中注册BroadcastReceiver,接收到广播之后,调用自己的onResume方法。
第一个Activity的onCreate方法中添加的代码如下:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { // 在这里发送广播,唤醒之前启动的Activity finish(); return; } // Regular activity creation code... }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。