在你App的AndroidManifest.xml中,将启动页做如下修改
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT"/> </intent-filter>
在第三方程序中如下调用
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<ResolveInfo> 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; }
时间: 2024-10-05 04:43:24