标签:
前言
在Android应用程序中,我们是通过给Activity标签中加入下面的intent-filter来指定程序的入口的,如果一个APK要有多个入口,自然而然地想到AndroidManifest.xml文件中会存在多个包含如下标签的Activity,所以我们需要做的仅仅是如何区分每一个桌面图标对应哪一个入口。
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>Activity有一个重要的属性process,这个属性是指定Activity运行时所在的进程。没有指定此属性的话,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。在AndroidManifest.xml文件中所有组件元素的process属性能够为该组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。如果这个属性被分配的名字以:开头, 当这个Activity运行时, 一个新的专属于这个程序的进程将会被创建。所以可以通过给每一个Activity指定标签、图标和进程名来区分不同的入口,具体实现如下:
<activity android:name=".PreSchoolChildActivity" android:label="@string/pre_school_child_app_name" android:process=":process.main" android:icon="@drawable/preschoolchild_launcher" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".EnglishSpellActivity" android:label="@string/english_spell_app_name" android:process=":process.sub" android:launchMode ="singleInstance" android:icon="@drawable/englishspell_launcher" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
标签:
原文地址:http://blog.csdn.net/ekeuy/article/details/42980567