Android - 从活动中获取清单元数据

时间:2013-10-15 10:49:47

标签: java android

我想做这样的事情

private static final String url;
private static final String pass;
private static final String user;

static {
    Bundle metadata = ctx.getPackageManager().getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA).metaData;
    url = (String) metadata.get("JMSQueueURL");
    user = (String) metadata.get("JMSQueueUsername");
    pass = (String) metadata.get("JMSQueuePassword");
}

到目前为止,它处于活动状态(但不是静态的),因此我可以获得包管理器,但现在我想将这段代码移动到另一个不继承ContextWrapper的类(从哪里开始)我们可以得到包经理)。有可能吗?这个类类似于util class。

1 个答案:

答案 0 :(得分:2)

您可以将Context从调用方法传递到Util类中的方法,并使用其中的上下文来获取所需的详细信息。这样,您可以使用不同的上下文从应用程序中的不同模块调用Util类中的方法。

// Calling the Util method
Bundle metadata = Util.getMetaData(context);
...
// Inside the Util class
public static Bundle getMetaData(Context context) {
    return context.getPackageManager().getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA).metaData;
}