我在助手类中有一个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