我是程序员学生,之前我从未使用过解析器。我想知道是否可以检索ParseFile并将其转换为图像而不使用方法getDataInBackground()
,因为我使用AsyncTask来检索我班级的所有数据,图像和其他属性。
我尝试使用getUrl()
,但我得到了FileNotFoundException
。
这是我的代码:
URL url = new URL(parsefile.getUrl());
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();
File SDCardRoot = Environment.getExternalStorageDirectory().getAbsoluteFile();
File file = new File(SDCardRoot,filename);
if(file.createNewFile())
{
file.createNewFile();
}
FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = urlConnection.getInputStream(); // Here is throw the exception
堆栈跟踪:
07-17 01:26:22.812: W/System.err(25516): java.io.FileNotFoundException: http://files.parsetfss.com/f110277e-8601-4613-be7b-20c580591112/tfss-4d05240e-8e70-4920-aba2-4c62c776f509-1.jpg
07-17 01:26:22.812: W/System.err(25516): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)
07-17 01:26:22.812: W/System.err(25516): at foc.final_project.decanias.BackgroundTask.getBitmapFromURL(BackgroundTask.java:192)
07-17 01:26:22.812: W/System.err(25516): at foc.final_project.decanias.BackgroundTask.retrieveBarSpecialties(BackgroundTask.java:116)
07-17 01:26:22.812: W/System.err(25516): at foc.final_project.decanias.BackgroundTask.doInBackground(BackgroundTask.java:68)
07-17 01:26:22.820: W/System.err(25516): at foc.final_project.decanias.BackgroundTask.doInBackground(BackgroundTask.java:1)
07-17 01:26:22.820: W/System.err(25516): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-17 01:26:22.820: W/System.err(25516): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-17 01:26:22.820: W/System.err(25516): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-17 01:26:22.820: W/System.err(25516): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-17 01:26:22.820: W/System.err(25516): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-17 01:26:22.820: W/System.err(25516): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-17 01:26:22.820: W/System.err(25516): at java.lang.Thread.run(Thread.java:856)
感谢。
答案 0 :(得分:2)
ParseFile是一个简单的对象,上面有一个URL。 getDataInBackground()
将为您异步下载,并且您可以传递回调以及后续操作。
您也可以随意获取网址并下载文件。
parseFile.getUrl();
答案 1 :(得分:0)
您可以使用非异步的.getData()方法...