我想知道吗?是否有方法可以在活动(而不通过上下文)之外访问android资源和/或资产文件(或来自任何其他文件夹的文件)?Android对活动之外的资源的访问
没有上下文无法访问:如果不是在活动
getResources().getIdentifier("resource_name", "drawable", getPackageName());
getAssets().open("file_in_assets_folder_name");
抛出异常:
try {
Class class = R.drawable.class;
Field field = class.getField("resource_name");
Integer i = new Integer(field.getInt(null));
} catch (Exception e) {}
也试过以下,但它抱怨文件不存在(在这里做得不对?):
URL url = new URL("file:///android_asset/file_name.ext");
InputSource source = new InputSource(url.openStream());
//exception looks like so 04-10 00:40:43.382: W/System.err(5547): java.io.FileNotFoundException: /android_asset/InfoItems.xml (No such file or directory)
我真的不能理解。你想访问活动之外的Android资源?如果不在活动中,你在哪里? Android资源究竟是什么?你的意思是像预先安装的图标? – yoshi 2012-04-09 23:56:35
你是在扩展类还是在某些你无权访问上下文的库类中? – 2012-04-10 00:23:55
@Marc:你为什么不想传递一个Context? – Squonk 2012-04-10 00:24:27