我在帮助器类中有一个Activity实例,我正在尝试从AndroidManifest.xml
文件中的条目中获取属性。
我可以获取所有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 :(得分:4)
我对您的问题的理解:您需要在应用程序中获取有关特定活动的信息。
目前,您正在使用getPackageInfo
从程序包管理器获取程序包信息,但如果您只关心应用程序中的一个Activity,则无需执行此操作。您可以使用getActivityInfo
,只要您知道活动的完全限定名称并使用ComponentName,例如:com.example.myapp/com.example.myapp.myactivity
答案 1 :(得分:0)
如果要检索当前活动的信息
ActivityInfo info = getPackageManager()。getActivityInfo(getComponentName(),0);