2012-03-17 72 views
1

我從兩個不同的包兩項活動,我想從包1 調用活動包2要做到這一點我用下面,從不同的包調用活動

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

看到這個[從不同的包發射活動(http://stackoverflow.com/questions/ 2741857/launch-activities-from-different-package) – 2012-03-17 06:36:59

回答

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

+0

即使我做了第一個你提到的,但這些活動都在不同的包中,所以... – 2012-03-21 14:14:03