У меня есть действие, которое загружает файл из Интернета при нажатии кнопки. Загрузка файла осуществляется через внутреннюю AsyncTask. Загрузка работает, я даже могу показать, обновить и скрыть виджет индикатора выполнения в файле layouts.xml с помощью AsyncTask. Я также могу показать уведомление от этого AsyncTask. Однако я не могу обновить индикатор выполнения внутри уведомления от AsyncTask. Я получаю Force Close, как только обработано первое обновление. При необходимости предоставит мой код!
Спасибо за ваше время
InvocationTargetException.<init>(Throwable) line: 50
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 845
ZygoteInit.main(String[]) line: 603
NativeStart.main(String[]) line: not available [native method]
Это брошено в эту строку
myContentView.setProgressBar(R.id.status_progress, 100, Integer.parseInt(progress[0]), false);
Вот мой код
protected String doInBackground(String... aurl) {
int count;
try {
URL url = new URL(aurl[0]);
String path = url.getPath();
String filename = new File(path).getName();
Environment.getExternalStorageDirectory();
File tm = new File("/sdcard/Transform Mii/");
tm.mkdirs();
File out = new File(tm, filename);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(out);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/lenghtOfFile));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {}
return null;
}
protected void onProgressUpdate(String... progress) {
progressbar.setProgress(Integer.parseInt(progress[0]));
myContentView.setProgressBar(R.id.status_progress, 100, Integer.parseInt(progress[0]), false);
notificationManager.notify(NOTIF_ID, notification);
}
progressbar - это строка в файле layout.xml, обычно обновляется
myContentView индикатор выполнения - это панель, которая находится внутри уведомления