学习别人的代码:
一、隐式启动应用的方式,就是在界面上你看不到那个应用
<activity android:name=".ActivityName" android:label="@string/name"
android:theme="@style/Transparent" android:launchMode="singleTask">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
上面<category android:name="android.intent.category.DEFAULT" />就是隐式的设置方式
二、另一种启动Activity的方式
在PhoneWindowManager.java的init方法中
mPoiSearchIntent = new Intent(Intent.ACTION_MAIN, null);
mPoiSearchIntent.addCategory(Intent.CATEGORY_POI_SEARCH);
mPoiSearchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
launchPoiSearchFromHotKey方法中
int result = ActivityManagerNative.getDefault()
.startActivity(null, mPoiSearchIntent,
mPoiSearchIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
null, 0, null, null, 0, true, false);
if (result == IActivityManager.START_RETURN_INTENT_TO_CALLER) {
return;
}
public static final String CATEGORY_POI_SEARCH = "android.intent.category.POI_SEARCH";
应用中
<activity android:name=".PoiSearchActivity" android:label="@string/app_name"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.POI_SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
重点看 <category android:name="android.intent.category.POI_SEARCH" />