Android 如何从url加载资源文件?
我有一个应用程序,它使用以下行从res/raw文件加载configuration.xml文件: 例如:Android 如何从url加载资源文件?,android,http,android-resources,android-developer-api,Android,Http,Android Resources,Android Developer Api,我有一个应用程序,它使用以下行从res/raw文件加载configuration.xml文件: 例如: Resources resources = context.getResources(); InputStream is = resources.openRawResource(ResourceIds.raw.configuration); Resources resources = context.getResources(); InputStream is
Resources resources = context.getResources();
InputStream is = resources.openRawResource(ResourceIds.raw.configuration);
Resources resources = context.getResources();
InputStream is = resources.openRawResource(http://example.com/folder/configuration.xml);
Resources resources = context.getResources();
InputStream is = resources.openRawResource(ResourceIds.raw.configuration);
Resources resources = context.getResources();
InputStream is = resources.openRawResource(http://example.com/folder/configuration.xml);
你能帮我吗 因此,如果我理解您的意思,您需要一个从web服务器读取XML的输入流。看起来是这样的:
InputStream is = new URL("http://example.com/folder/configuration.xml").openConnection().getInputStream();
然而,还有更多的问题,您不能在主线程上执行此操作(请参阅NetworkOnMainThreadException),您必须准备好没有internet连接或下载速度较慢。因此,我不知道您使用此配置的目的是什么,但例如,您可能必须具有默认值,并在屏幕上显示“请稍候”消息。因此,如果我了解您的意思,您需要一个从web服务器读取XML的输入流。看起来是这样的:
InputStream is = new URL("http://example.com/folder/configuration.xml").openConnection().getInputStream();
然而,还有更多的问题,您不能在主线程上执行此操作(请参阅NetworkOnMainThreadException),您必须准备好没有internet连接或下载速度较慢。因此,我不知道您使用此配置的目的是什么,但例如,您可能必须使用默认设置,并在屏幕上显示“请稍候”消息。这不会发生。还有这样的想法吗?对不起,您不能从URL加载资源。使用OkHttp或其他HTTP客户端加载该URL标识的内容。你能给我一个简单的例子吗?这个例子不适用。还有这样的想法吗?对不起,您不能从URL加载资源。使用OkHttp或其他HTTP客户端加载该URL标识的内容。您能给我提供一个简单的示例吗?您好,thnx供您回复。我正在为Android TV定制主屏幕。当我将statically configuration.xml文件放在res/raw文件夹下时,我可以进行所需的修改,但编译环境花费了太多时间。所以我决定把这个配置文件放在一个服务器下,这样我就可以直接在上面修改,然后customization.apk从中读取这个xml文件并进行我想要的修改。我从来没有这样做过,但是我想你会对上面的简单代码满意的。请记住,您仍然需要在单独的线程上执行此操作,可能需要使用
new-thread(new-Runnable{…})。start()
在主线程上总是会失败。Android不允许你在主线程上做任何联网的事情,因为它可能会阻塞用户界面和“导致糟糕的用户体验”等等。Thnx很多伙计,你的建议解决了我的问题:D:DHello,Thnx谢谢你的回复。我正在为Android TV定制主屏幕。当我将statically configuration.xml文件放在res/raw文件夹下时,我可以进行所需的修改,但编译环境花费了太多时间。所以我决定把这个配置文件放在一个服务器下,这样我就可以直接在上面修改,然后customization.apk从中读取这个xml文件并进行我想要的修改。我从来没有这样做过,但是我想你会对上面的简单代码满意的。请记住,您仍然需要在单独的线程上执行此操作,可能需要使用new-thread(new-Runnable{…})。start()
在主线程上总是会失败。Android不允许你在主线程上做任何联网的事情,因为它可能会阻塞用户界面和“导致糟糕的用户体验”等等。Thnx很多老兄,你的建议解决了我的问题:D:D