2016-08-19 190 views
2

从我自己的Android应用程序,我试图启动一个外部应用程序的组件明确发送意图时,“setComponent”和“setClassName”有什么区别?

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

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

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