从不同的包调用活动

时间:2012-03-17 06:32:30

标签: android android-intent

我有来自两个不同包的两个活动,我希望从package1调用Package2中的一个活动 为此,我使用了以下内容,

Intent intentDeviceTest = new Intent();                
intentDeviceTest.setComponent(new ComponentName("chat.client.gui","chat.client.gui.MainActivity"));
startActivity(intentDeviceTest);

这显示找不到活动的错误,将其添加到清单。

但是当我以这种方式调用它时,它工作正常,

Intent intentDeviceTest = new Intent(HomeActivity.this,MainActivity.class);      
startActivity(intentDeviceTest);

上述方法中的错误是什么!

1 个答案:

答案 0 :(得分:0)

我总是在我的应用中使用第二种形式。它更简单,更清晰,更短。

// Assumes that this is done from within an Activity
Intent intent = new Intent(this, AnotherActivity.class);  
startActivity(intent);

但我认为第一种形式的问题是你在第二个参数中再次指定了包。您只需要班级名称:

Intent intentDeviceTest = new Intent();                
intentDeviceTest.setComponent(new ComponentName("chat.client.gui", "MainActivity"));
startActivity(intentDeviceTest);

查看此处的第一个构造函数以获取参考: http://developer.android.com/reference/android/content/ComponentName.html