是否必须使用“addFlags”才能明确启动其他应用程序的组件?

时间:2016-08-19 05:39:56

标签: android android-intent explicit-intent

使用我的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);

1 个答案:

答案 0 :(得分:0)

  

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

"正确运行"是一个解释的问题。你需要决定你想要的东西!

  

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

这不是必需的。当您致电startActivity()时,DEFAULT类别会自动添加到隐式搜索条件中。

  

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

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