"setComponent" 和 "setClassName" 在发送 intent 时有什么区别?

What is difference between "setComponent" and "setClassName" in sending an 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") 吗? 请告诉我它们之间有什么区别。

是的,你可以做到。在内部 setClassName(String, String) 创建一个 new ComponentName(String, String)

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