在AndroidManifest.xml中做如下修改



     
     
  

 

在第三方程序中如下调用


Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.test.app",
           "com.test.app.MainActivity"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);


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


亦可如此:

public boolean startApp(String packageName) {
		  Intent intent = new Intent(Intent.ACTION_MAIN, null);
		  intent.addCategory(Intent.CATEGORY_DEFAULT);
		  PackageManager pm = getPackageManager();
		  List listInfos = pm.queryIntentActivities(intent, 0);
		  String className = null;
		  for (ResolveInfo info : listInfos) {
		   if (packageName.equals(info.activityInfo.packageName)) {
		    className = info.activityInfo.name;
		    break;
		   }
		  }
		  if (className != null && className.length() > 0) {
		   intent.setComponent(new ComponentName(packageName, className));
		   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
		     | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
		   startActivity(intent);
		   return true;
		  }
		  return false;
		 }