開始的活動我有一個包名稱和活動名稱,我想用它來啓動一個新的類或活動。沒有在清單文件中聲明相同的活動,是否可以從代碼啓動活動?從代碼
從代碼
回答
如果沒有在清單中聲明你無法啓動的活動。你可能要做的只是改變視圖的程序,而不是活動。
不,你不能這樣做(see the 2nd paragraph of the Activity 'Class Overview')。然而...
如果你想這樣做是爲了防止有人直接啓動子活動,您可以把邏輯(通過Activity.getCallingActivity/Activity.getCallingPackage)來檢測發射活動 - 你需要使用StartActivityForResult要做到這一點
您可能能夠達到你想要通過一個ClassLoader的東西 - 更多的細節上,你在做什麼(爲什麼)將是有益的。
如果你正在嘗試啓動在不同的包中定義的活動,那麼只需要在其他包清單中聲明 - 那麼你可以用Intent.setClassName
希望這有助於指定它,
菲爾Lello
是的,我想從其他包中啓動活動,而不是在同一個包中。 – Kristen 2011-04-07 16:08:01
然後你不需要在清單中引用它。如果您明確調用另一個包,請使用Intent.setComponent – 2011-04-07 16:45:28
爲什麼你要這麼做?你究竟想實現什麼? – 2011-04-06 17:49:07