2013-10-15 24 views
1

的我想要做這樣的事情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類一樣。

回答

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

好主意,但那不是我想要的。我最好想爲這個Util類注入上下文。 – mattis