Как сохранить состояние прогресса индикатора выполнения, когда пользователь нажимает кнопку «Назад» в Android - PullRequest
2 голосов
/ 11 февраля 2012

Мне было интересно, что произойдет, когда пользователь нажимает кнопку «Назад», когда происходит прогресс.Мне пришло в голову, что текущий прогресс должен быть сохранен , когда пользователь выходит из текущего действия и возвращается к предыдущему действию или любому другому приложению.Я написал код для загрузки файла и отображения индикатора выполнения, когда пользователь нажимает кнопку синхронизации.Это выглядит следующим образом:

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] + "%");
    }


}

Мне нужно вставить некоторый код между вышеупомянутым кодом, чтобы он сохранял состояние индикатора выполнения, когда активность завершается, когда пользователь нажимает кнопку возврата и когдаактивность открывается, она возобновляется с того места, где она была остановлена.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 11 февраля 2012

вы можете сохранить состояние выполнения в статическом параметре при выходе ...

@Override
    public void onBackPressed() {
        state=progressbar.getprogress();
        super.onBackPressed();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...