Android 安装软件后执行“OPEN”引起的Intent血案(系统BUG)
来源:互联网 发布:k11防水涂料跟js 区别 编辑:程序博客网 时间:2024/05/16 07:16
编写:徐建祥(netpirate@gmail.com)
日期:2010/12/13
网址:http://www.anymobile.org
打开程序的入口有很多个:
shell 命令行运行;
Launcher待机界面执行;
状态通知栏运行;
桌面快捷方式运行;
软件中调用运行;
安装软件后执行“OPEN”运行!
前面几项,调用程序的代码如下(参考:com.android.Launcher/.Launcher.java):
而安装软件后,点击“Open”调用的代码如下(参考:com.android.packageinstaller/.InstallAppDone.java):
如果用户安装软件后立刻执行“Open”,运行程序后,按HOME键返回到后台,然后再通过别的几种方法运行程序,则会再起一个MAIN程序。这是因为Intent的处理机制是,先比较Activity,再比较Action、Flag、bnds。。。,前后两张方式的Action不一样,一个有LAUNCHER ACTION,一个没有,所以会认为是启动两个不同的INTENT。
目前只想到一个简单的处理方式:
程序入口MAIN程序:SplashActivity.java
程序原入口程序:LoginActivity.java
启动程序后,在状态通知栏上添加快捷通知,代码如下:
测试流程:
a、软件本地安装;
b、安装后执行“Open”;
c、运行软件会从SplashActivity添加NOTICIFICATION TestActivity;
d、跳转至SplashActivity(附带LAUNCHER ACTION);
e、再跳转至TestActivity;
f、点击BUTTON,跳转至Test2Activity;
g、下拉状态通知栏,点击程序通知,可以正常运行程序。
TODO: 安装软件后执行OPEN后,从待机界面运行程序,还是会启动两个一样的ACTIVITY,这个问题没有解决!:(
- Android 安装软件后执行“OPEN”引起的Intent血案(系统BUG)
- Bug Fix : 安装Visual Studio SP6后引起的ASP无法执行, ASP运行后出现500 - internal error.
- Bug Fix : 安装Visual Studio SP6后引起的ASP无法执行, ASP运行后出现500 - internal error.
- Bug Fix : 安装Visual Studio SP6后引起的ASP无法执行, ASP运行后出现500 - internal error.
- 最难调的Bug-序列化引起的血案
- NaN引起的血案(C语言)
- 房价引起的血案
- 一句话引起的血案
- 一个ID引起的血案
- 一个笔误引起的血案
- 一个引号引起的血案
- 死循环引起的血案
- 一个斜杠引起的血案
- vmware安装后引起系统死机
- (转贴)一位网友评《一个馒头引起的血案》
- 一个bug引发的“血案”
- MSI Windows Installer 被破坏后引起软件无法安装的解决
- RCP打包后图片资源缺失引起的bug
- TypeInfo
- RTT后期合成[多重采样模拟体积光]
- Java虚拟机(JVM)参数配置说明
- Hashtable, ArrayList, List, Dictionary学习
- TD-SCDMA网络测试仪中Uu接口的信令分析
- Android 安装软件后执行“OPEN”引起的Intent血案(系统BUG)
- 3000自装车还是买挑战者300
- google 图片搜索API
- 专业承接嵌入式linux方案---广州华嵌方案工作室
- webi报表中的上下文
- 字符串操作总结
- 如何判断C#字符串是全角还是半角
- 新人报道
- OLE系统简述与方法