我在助手类中有一个Activity的实例,并且正在尝试从AndroidManifest.xml文件中的条目获取属性。

我可以获得所有ActivityInfo实例的列表,但是如何针对我的应用程序定位特定的实例呢?

Activity 实例与帮助程序类不在同一包中,并且未在同一清单中定义( Activity 程序应用程序项目中包含的库是帮助程序类)。

到目前为止,我有:

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;
    }
}

最佳答案

我对您的问题的理解:您需要获取有关应用程序中特定 Activity 的信息。

当前,您正在使用getPackageInfo从程序包管理器中获取程序包信息,但是如果您只关心应用程序中的一个 Activity ,则不需要这样做。您可以改用getActivityInfo,只要您知道Activity的完全限定名称并使用ComponentName,例如:com.example.myapp/com.example.myapp.myactivity
PackageManager Docs

08-17 02:09