2011-03-18 44 views
3

我有一個輔助類中的Activity實例,我試圖從AndroidManifest.xml文件的條目中獲取屬性。檢索活動實例的ActivityInfo

我可以得到所有ActivityInfo實例的列表,但我如何針對特定的應用程序?

活動實例與助手類不在同一個包中,也未在同一個清單中定義(助手類是包含在活動的應用程序項目中的庫)。

我有什麼至今:

Activity activity = //the instance 
String applicationPackage = activity.getApplicationInfo().packageName; 
PackageInfo info = activity.getPackageManager().getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); 
for (ActivityInfo activityInfo : info.activities) { 
    if (/* activityInfo applies to our activity instance */) { 
     return activityInfo.someProperty; 
    } 
} 
+0

您是否試圖從應用程序的清單文件或庫的清單中獲取信息? – smith324 2011-03-18 01:12:05

+0

活動是其成員的應用程序的清單。 – 2011-03-18 02:01:41

回答

4

我你的問題的理解:你需要讓你的應用程序中的特定活動的信息。

當前您正在使用getPackageInfo從包管理器獲取包信息,但如果您只關心應用程序中的一個活動,則不需要執行此操作。您可以使用getActivityInfo代替,只要你知道活動的完全合格的名稱,並使用一個組件名稱,例如:如果你想檢索當前活動的信息com.example.myapp/com.example.myapp.myactivity

PackageManager Docs

+1

哇!我不知道我完全錯過了這個方法。由於沒有'getActivityInfo'來匹配活動本身的'getApplicationInfo',所以它沒有退出。謝謝! – 2011-03-18 03:35:09

0

ActivityInfo info = getPackageManager()。getActivityInfo(getComponentName(),0);