出于某种原因,每当用户在使用3g数据时单击下载按钮,屏幕就会完全变黑,应用程序就会请求强制关闭。
private final String PATH = Environment.getExternalStorageDirectory() + "/folder";
public void DownloadFromUrl(String fileName, String saveTo) {
try {
URL url = new URL("http://example.com/" + fileName + ".png");
File file = new File(fileName + ".png");
long startTime = System.currentTimeMillis();
URLConnection urlconnection = url.openConnection();
InputStream iS = urlconnection.getInputStream();
BufferedInputStream bis = new BufferedInputStream(iS);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
FileOutputStream fos = new FileOutputStream(PATH + saveTo);
fos.write(baf.toByteArray());
fos.close();
Toast t= Toast.makeText(getApplicationContext(), "Downloaded '" + saveTo + "' to '" + PATH + "'.", Toast.LENGTH_SHORT);
t.show();
} catch (IOException e) {
Log.d("ImageManager", "Error: " + e);
}
}
优秀的教程在这里:http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html
此外,从谷歌Androidapi中查看ASYNC,正如罗伯特建议的那样:
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
// Escape early if cancel() is called
if (isCancelled()) break;
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
因为您正在用长时间运行的操作阻塞UI线程。
相反,可以尝试在后台线程、处理程序、服务、IntentService、AsyncTask或其他内容中发出请求,这样UI线程就不会卡住。
我刚刚在Google Play上构建并部署了一个应用程序。当我通过Android Studio运行它时,它运行得很好,但现在当我从Google Play下载它时,它崩溃了。因为这是我第一次,我甚至不知道如何查看从Google Play下载的应用程序的崩溃报告/堆栈跟踪。我感谢所有的帮助。 更新 所以我得到了APK的堆栈跟踪。它告诉我我的类无法创建我的类。我不知道为什么它会出现这个错误。一切正常。看
以下是logcat中显示的错误。
我最近把一个应用程序上传到谷歌play商店,一切正常。我下载了它,并能够注册一个新用户。加载应用程序的主要活动时,应用程序崩溃。 这是我得到的stacktrace: 以前可能有人问过这个问题,但我已经研究了很多次,没有找到解决这个问题的方法。任何帮助都将不胜感激。该应用程序是使用android java和firebase创建的。
我使用的是IntelliJIDEA CE edition(11.0.4)的最新版本。有一件事我在任何地方都找不到,它阻碍了我对Java/Spring的进一步改进。 控制器: 类:导入com.example.demo.interfaces.ISave; 类接口: 没什么特别的,只是为了掌握Spring和Java。 在我的控制器里,当我试图使用 我收到一个阻止应用启动的错误。以下是错误: 任务应用程序
我尝试了太多东西,但每次按下“计算”(hesapla)按钮后,应用程序都会崩溃。 例如: 我应该写什么/做什么? 有一只原木猫; 通用域名格式。ertugrulguleryuzgmail。sdunothesaplama E/AndroidRuntime:致命异常:主java。lang.NumberFormatException:无效的int:“”在java上。整型。java上的invalidit(
我在(unity)应用程序启动期间发生崩溃,只有从Play Store下载应用程序时才会出现。我进行了大量测试,即使在一个空的Unity项目中,我也观察到了这次崩溃。 我有谷歌游戏Firebase 如果我在安装后立即清除应用的存储,崩溃就会消失。 崩溃发生在Android9上,但不是在Android5.1上。如果我在google play控制台上使用不同的项目加载相同的应用程序,则不会发生崩溃(尝