叙Android下一个apk安装多个程序入口图标

谈Android下一个apk安装多个程序入口图标

Android中有的Ap功能比较复杂,为了方便用户使用,可以提供多个入口图标,每个入口图标对应一个功能。
 
如果想安装一个Apk在程序管理中出现多个图标,只要给相应的Activity增加intent-filter即可,类似于如下:

复制到剪贴板  XML/HTML代码
  1. < ativity android:name="A2" android:label="A2">  
  2.     
  3.   < intent-filter>  
  4.     
  5.   < action android:name="android.intent.action.MAIN" />  
  6.     
  7.   < category android:name="android.intent.category.LAUNCHER" />  
  8.     
  9.   < /intent-filter>  
  10.     
  11.   < /activity>  
  12.     
  13.   < ativity android:name="A2" android:label="A2">  
  14.     
  15.   < intent-filter>  
  16.     
  17.   < action android:name="android.intent.action.MAIN" />  
  18.     
  19.   < category android:name="android.intent.category.LAUNCHER" />  
  20.     
  21.   < /intent-filter>  
  22.     
  23.   < /activity>  

此时点击桌面上的图标,即可进入各自相应的功能。

如果在A1界面按下Home,再点A2图标,此时仍然出现的是A1的界面,为了让两个图标所有情况下都不干扰,修改Activity的LaunchMode为singleInstance:

复制到剪贴板  XML/HTML代码
  1. < activity android:name="A2" android:label="A2"  
  2.     
  3.   android:launchMode="singleInstance">  
  4.     
  5.   < intent-filter>  
  6.     
  7.   < action android:name="android.intent.action.MAIN" />  
  8.     
  9.   < category android:name="android.intent.category.LAUNCHER" />  
  10.     
  11.   < /intent-filter>  
  12.     
  13.   < /activity>  
  14.     
  15.   < activity android:name="A2" android:label="A2"  
  16.     
  17.   android:launchMode="singleInstance">  
  18.     
  19.   < intent-filter>  
  20.     
  21.   < action android:name="android.intent.action.MAIN" />  
  22.     
  23.   < category android:name="android.intent.category.LAUNCHER" />  
  24.     
  25.   < /intent-filter>  
  26.     
  27.   < /activity>  

此时A1,A2两个图标就互不干扰了,不过有个副作用:
 
  A1启动A2,此时A2如果想再启动一个A1的新实例就不能了,即不能像原来A1--A2--A1这样同时存在两个A1或A2了。