在AndroidManifest.xml中做如下修改


<intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.DEFAULT"/></intent-filter>

在第三方程序中如下调用


Intentintent=newIntent(Intent.ACTION_MAIN);intent.setComponent(newComponentName("com.test.app","com.test.app.MainActivity"));intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);


其中com.test.app为应用程序包名,而com.test.app.MainActivity为你所要启动的第一个Activity


亦可如此:

publicbooleanstartApp(StringpackageName){Intentintent=newIntent(Intent.ACTION_MAIN,null);intent.addCategory(Intent.CATEGORY_DEFAULT);PackageManagerpm=getPackageManager();List<ResolveInfo>listInfos=pm.queryIntentActivities(intent,0);StringclassName=null;for(ResolveInfoinfo:listInfos){if(packageName.equals(info.activityInfo.packageName)){className=info.activityInfo.name;break;}}if(className!=null&&className.length()>0){intent.setComponent(newComponentName(packageName,className));intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);startActivity(intent);returntrue;}returnfalse;}