发送意图时“setComponent”和“setClassName”之间有什么区别?

时间:2016-08-19 18:09:24

标签: android android-intent explicit-intent

从我自己的Android应用中,我正在尝试发布外部应用的组件明确

Intent i = new Intent();
Uri uri = Uri.parse("http://0.0.0.1");
i.setData(uri);
i.setComponent(new ComponentName("other.app.android","other.app.android.Activity1"));
startActivity(i);

我可以将i.setComponent(...)替换为i.setClassName("other.app.android", other.app.android.Activity1")吗? 请让我知道它们之间有什么区别。

1 个答案:

答案 0 :(得分:1)

是的,你可以这样做。内部setClassName(String, String)会创建new ComponentName(String, String)

public Intent setClassName(String packageName, String className) {
    mComponent = new ComponentName(packageName, className);
    return this;
}