Мне было интересно, что произойдет, когда пользователь нажимает кнопку «Назад», когда происходит прогресс.Мне пришло в голову, что текущий прогресс должен быть сохранен , когда пользователь выходит из текущего действия и возвращается к предыдущему действию или любому другому приложению.Я написал код для загрузки файла и отображения индикатора выполнения, когда пользователь нажимает кнопку синхронизации.Это выглядит следующим образом:
public class DownloadVideoTask extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... downloadurl) {
int count;
try{
URL url = new URL(downloadurl[0]);
URLConnection connection = url.openConnection();
connection.connect();
int lengthOfFile = connection.getContentLength();
Log.d(TAG, "Length of file: " + lengthOfFile);
InputStream inputStream = new BufferedInputStream(url.openStream());
OutputStream outputStream = new FileOutputStream("/sdcard/drona_video.mp4");
byte data[] = new byte[1024];
long total = 0;
while((count = inputStream.read(data))!= -1){
total += count;
publishProgress("" + (int)((total*100)/lengthOfFile));
outputStream.write(data, 0, count);
}
dbAdapter.insertVideoBytesInVideoDownloadsTable(id, data);
//bundle.putByteArray("videoBytesArray", data);
outputStream.flush();
outputStream.close();
inputStream.close();
}catch(Exception e){
return null;
}
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
//showDialog(DIALOG_DOWNLOAD_PROGRESS);
syncBtn.setEnabled(false);
progressBar.setMax(100);
progressBar.setVisibility(View.VISIBLE);
txtProgressPercentage.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String result) {
//dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
//mProgressDialog.dismiss();
progressBar.setVisibility(View.INVISIBLE);
progressBar.setSaveEnabled(true);
txtProgressPercentage.setVisibility(View.INVISIBLE);
syncBtn.setVisibility(View.INVISIBLE);
playBtn.setVisibility(View.VISIBLE);
}
@Override
protected void onProgressUpdate(String... progress) {
Log.d(TAG, progress[0]);
//mProgressDialog.setProgress(Integer.parseInt(progress[0]));
progressBar.setProgress(Integer.parseInt(progress[0]));
txtProgressPercentage.setText(progress[0] + "%");
}
}
Мне нужно вставить некоторый код между вышеупомянутым кодом, чтобы он сохранял состояние индикатора выполнения, когда активность завершается, когда пользователь нажимает кнопку возврата и когдаактивность открывается, она возобновляется с того места, где она была остановлена.Пожалуйста, помогите мне.