当前位置: 首页 > article >正文

Android activity-alias 的用法解析

1. 问题

    最近在公司业务应用开发中有这样一个需求:需要改变HomeActivity (launcher 的入口) 的名称为FirstActivity,这么改一下很简单,那就改吧,按理说也没有什么大碍。可是在App 发布后在某些手机上版本升级后,点击桌面icon 竟然无法启动App直接崩溃。

后来追述Log才搞清楚原因:某些手机安装的launcher 会cache App 的历史信息,例如HomeActivity的名称等。所以当App升级到新版本后,点击桌面icon 仍然会启动老的HomeActivity,然而新App 的HomeActivity已经更改名称FirstActivity,因此无法启动直接崩溃。(如果用户关机重新启动,点击桌面icon App是能够正常启动的,因为launcher cache 的信息已经清除了)

2. 解决办法

用<activity-alias>重定向HomeActivity

  1. <activity android:name="com.example.FirstActivity"  
  2.     android:exported="true">  
  3. </activity>  
  4.   
  5. <!-- Solution for upgrading issue -->  
  6. <activity-alias android:name="com.example.HomeActivity"  
  7.     android:targetActivity="com.example.FirstActivity"  
  8.     android:exported="true"  
  9.     android:enabled="true">  
  10.     <intent-filter>  
  11.         <action android:name="android.intent.action.MAIN" />  
  12.         <category android:name="android.intent.category.LAUNCHER" />  
  13.     </intent-filter>  
  14. </activity-alias>  

3. 注意

(1)在AndroidManifest.xml 文件中,新的 <activity> 必须放在 <activity-alias>之前定义,否则重定向可能会失败.

(2)如果你的App引用了其它工程,请务必将 <activity-alias>的定义声明放在App的AndroidManifest.xml 文件中,不要放在被引用的工程的AndroidManifest.xml 文件中,否则用Eclipse "project -> Run As -> Android Application" 无法启动你的App.

4. 验证

   手动安装,手动点击icon是可以正常启动,修改完成!

http://www.lryc.cn/news/2416387.html

相关文章:

  • java.lang.String--String常用方法介绍
  • android中setBackgroundColor()中不能设置背景颜色的问题
  • mentohust找不到服务器 重启认证,mentohust官方使用说明(全+转)
  • TranslateMessage()函数
  • Java课程设计:Servlet+JSP+MySql 实现的图书管理系统(内附源码)
  • C语言—scanf函数的详解(上)
  • 函数的调用及作用域D08
  • 【计算机网络】计算机网络的体系结构
  • 代数几何与复分析:黎曼曲面与代数曲线
  • 【SpringBoot应用篇】SpringBoot集成JUnit单元测试
  • tinyxml和rapidxml
  • Windows上Qt开发环境搭建
  • 浅析入侵检测系统及最新研究
  • 攻防世界-easyphp 思路分析
  • 文献翻译 | Frequency Domain De-correlation Parameter in Speech Noise Reduction System Based on Frequency
  • java web配置servlet实现图像验证码
  • artDialog的使用笔记
  • 冰河木马简易使用 ——病毒木马 003
  • 饼状图(PieChart)与柱形图(BarChart)的使用
  • 【视频编解码】H264入门
  • 你们大学还用Protel 99 SE、51单片机吗?
  • ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务【解决思路】
  • 【小呆的力学笔记】弹塑性力学的初步认知三:广义胡克定律
  • linux mrtg 命令,linux服务器之流量监控(MRTG)
  • 【修复版】免费微信小游戏源码h5赛马php网页开源可二次开发,附安装教程
  • css单线边框_css border-collapse设置表格单线边框和双线边框
  • Linux AVG ANTIVIRUS FREE使用介绍
  • CPE上的STUN和TR069功能详解和实验
  • Divx编解码器的研究与设计
  • 系统结构期末复习(四)指令级并行