场景:
在activity1
用户单击fileName。调用Activity 2
并下载显示进度的文件。
在Activity 2
中存在一个asynctask,其工作是下载和打开文件。
AsyncTask在其各种方法中执行以下操作:
onPreExecute
: - 打开进度条。
doInbackground
: - 启动下载并发送进度更新
onPostExecute
: - 处理doInBackground
发送的各种返回值。
在下载时,它也会更新进度。
现在,进度条oncancelable
为true
。因此当用户按下它时会返回上一个活动。
但是当用户再次在Activity1
中按下相同的文件时,如果下载仍在进行,他应该再次看到进度条,并发布onPostExecute
应该执行。
我该怎么办?
提前致谢。
答案 0 :(得分:1)
创建Async任务的静态对象,并在恢复Activity
static YourAsyncTask backgroundTask;
onCreate()
/ onResume()
if(backgroundTask == null)
{
backgroundTask = new YourAsyncTask();
backgroundTask.execute();
}
else
{
if(backgroundTask.getStatus() == AsyncTask.Status.PENDING){
// AsyncTask has not started yet
}
if(backgroundTask.getStatus() == AsyncTask.Status.RUNNING){
// AsyncTask is currently doing work in doInBackground()
}
if(backgroundTask.getStatus() == AsyncTask.Status.FINISHED){
// AsyncTask is done and onPostExecute was called
}
}
希望这会有所帮助:)