1.问题简单介绍

首先描写叙述一下问题。当我们安装完APP的时候,界面会显示两个button,一个完毕键,一个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...
}

问题得到完美解决。

android:一个Open键引发的问题!!的更多相关文章

  1. RN—Android 物理返回键监听

    A → B 使用 navigator 导航,用 goBack() 返回的时候传递参数 在 A 页面 this.props.navigation.navigate("B", { ca ...

  2. Android 屏蔽Power键 Home键

    Android 屏蔽Power键 Home键 标签: androidpower键Home键PhoneWindowManagerframework 2014-04-18 17:22 1557人阅读 评论 ...

  3. Android MVP Presenter 中引发的空指针异常

    一.概述 最近对 googlesamples/android-architecture 中的 MVP-dagger 进行了学习.对照项目的 MVP-dagger 分支,对 MVP-dagger 进行了 ...

  4. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  5. React Native 适配Android物理返回键,实现连续两次点击退出

    一直使用iPhone作为测试机开发,提交给测试同事Android版本后发现很多适配问题,其中一个非常明显的是,弹出一个modal后,点击Android的返回键,modal不会消失,直接navigati ...

  6. MySQL为什么需要一个主键

    主键 表中每一行都应该有可以唯一标识自己的一列(或一组列). 一个顾客可以使用顾客编号列,而订单可以使用订单ID,雇员可以使用雇员ID 或 雇员社会保险号. 主键(primary key) 一列(或一 ...

  7. 试图删除 xx 和yy之间的关系。但是,关系的其中一个外键 (xx_yy.xxID) 无法设置为 null。

    错误原因:试图删除 UserInfoGroup 和 UserInfoGroupLinkLimitsOfAuthority 之间的关系.但是,关系的其中一个外键 (UserInfoGroupLinkLi ...

  8. Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式 1.覆写Activity的OnBackPressed方法 官方解释: Called when the activity has detected ...

  9. Android一个ListView列表之中插入两种不同的数据

    http://www.cnblogs.com/roucheng/ Android一个ListView列表之中插入两种不同的数据 代码如下: public class ViewHolder{ Butto ...

随机推荐

  1. 8. java操作mongodb——查询数据

    转自:https://www.cnblogs.com/adjk/p/6430074.html 通过find方法查询集合中的文档信息 ---------------------------------- ...

  2. [Chromium文档转载,第007章]JNI on Chromium for Android

    Overview JNI (Java Native Interface) is the mechanism that enables Java code to call native function ...

  3. C++入门之HelloWorld

    1.在VS2017上新建一个C++空白项目,命名为hello 2.在资源文件下新建添加新建项main.cpp 3.在main.cpp中编写hello world输出代码 #include<std ...

  4. 微信、QQ中app的下载问题

    最近在做一个项目,有一项功能是从微信中的分享页或者产品推广页面中下载app:在微信中直接下载app时微信是“拒绝”的,所以一般的做法是点击下载按钮弹出遮罩层,提示在浏览器中打开,然后进入外部浏览器,再 ...

  5. 【hdu 1429】胜利大逃亡(续)

    [Link]: [Description] 给你一个n*m的格子; 里面有钥匙,以及钥匙能开的门; 以及墙,以及起点,以及出口; 问你从起点出发,到出口的话,能不能在t时间内到; [Solution] ...

  6. Python标准库:内置函数all(iterable)

    假设可迭代的对象的所有元素所有非空(或者空迭代对象),就返回True.这个函数主要用来推断列表.元组.字典等对象是否有空元素.比方有10000个元素的列表,假设没有提供此函数,须要使用循环来实现.那么 ...

  7. Oracle primary key&foreign key

    --主键 alter table tablename1 add constraint pk_tablename1 primary key(column1);--增加数据表1的主键column1,如果是 ...

  8. thuwc9102划水记

    thuwc9102划水记 Day -2 时隔两个月之后终于回一次家,心情非常愉悦,开始浪. Day 0 晚上回到学校,然而机房里并没多少人,大佬们明天才回来.╮(╯▽╰)╭ Day 1 中午饭菜挺好吃 ...

  9. mv---移动文件或目录

    mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中.source表示源文件或目录,target表示目标文件或目录.如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆 ...

  10. 【习题 8-4 UVA - 11491】Erasing and Winning

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑删掉第i位. 则第i+1位就会取代第i位. 则肯定第i+1位比第i位大的话,才比较好. 则从小到大贪心删,找到第一个a[i+1] ...