场景:在activity1中,用户单击一个fileName。调用Activity 2并下载显示进度的文件。
在Activity 2中存在一个异步任务,其工作是下载和打开文件。
AsyncTask在其各种方法中做了以下工作:
onPreExecute :-打开一个进度条。doInbackground :-启动下载并发送进度更新onPostExecute:-处理doInBackground发送的各种返回值。在下载过程中,它还会更新进度。
现在,随着进度条oncancelable是true .So,当用户按后退时,它返回到最后一个活动。
但是,当用户在Activity1中再次按下同一个文件时,如果下载仍在继续,他应该再次查看进度条,并发布应该执行的onPostExecute。
我该怎么做?
提前谢谢。
发布于 2014-03-27 07:22:59
创建Asysnc任务的静态对象,并在恢复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
}
}希望这会有所帮助:)
https://stackoverflow.com/questions/22680535
复制相似问题