是否必须使用 "addFlags" 才能显式启动其他应用程序的组件?

Is it mandatory to use "addFlags" in order to launch other app's component explicitly?

使用我的 Android 应用程序,我正在尝试显式启动外部应用程序的组件。

ComponentName name =  new ComponentName("other.app.android", "other.app.android.Activity1");
Uri uri = Uri.parse("http://127.0.0.1:8111");
Intent abc = new Intent();
abc.setData(uri);
abc.setComponent(name);
startActivity(abc);

我应该添加这两行以使其 运行 正确吗?

(1) abc.addCategory("android.intent.category.DEFAULT");

(2) abc.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Should I add these two lines in order to make it run correctly?

"run correctly" 是一个解释问题。你需要决定你想要什么!

(1) abc.addCategory("android.intent.category.DEFAULT");

这不是必须的。当您调用 startActivity().

时,DEFAULT 类别会自动添加到隐式搜索条件中

(2) abc.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

如果您希望目标 Activity 在新任务中启动(即:不在现有任务中),则可以添加此项。如果您不添加此标志,目标 Activity 将在当前任务中启动。这取决于您想要的行为。