如何在同一个文件上执行两个asynctask?

时间:2017-12-06 05:54:32

标签: android android-asynctask compression filesize writing

我想在同一个文件上使用两个Asynctask。 1 - >执行压缩以输出文件路径。 2 - >想要在第一个Asynctask运行时更新文件大小。

我怎样才能得到这两件事?

类VideoCompressor扩展了AsyncTask {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        progressBar.setVisibility(View.VISIBLE);
        Log.d(TAG,"Start video compression");
    }
    @Override
    protected Boolean doInBackground(String... params) {
        Log.d("doInBackground: ", "0 = " + params[0] + " 1 = " + params[1]);
        return MediaController.getInstance().convertVideo(params[0],params[1]);
    }
    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
        progressBar.setIndeterminate(false);
        progressBar.setMax(100);
        progressBar.setProgress(values[0]);
    }
    @Override
    protected void onPostExecute(Boolean compressed) {
        super.onPostExecute(compressed);
        progressBar.setVisibility(View.GONE);
        if(compressed){
            Log.d(TAG,"Compression successfully!");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如何使用AsyncTask的Runnable方法,通过它可以获得文件压缩的​​当前进度。