我怎么知道我在onResume上启动的任务正在运行?

时间:2015-07-26 18:49:42

标签: java android android-fragments android-asynctask

如果我运行异步调用onResume,有一种很好的方法可以检测到异步调用是否正在运行而不再调用它?
因为我正在使用片段AsynTask中的onResume进行网络通话,而且似乎经常被调用

更新
问题在于,当调用onResume时,没有可用的变量。所以我不再有异步任务的有效参考来检查状态 代码如下:

public void onResume()  {  
   AsynTask<Void, Void, String> theTask = new AsyncTask<>() {
   //code to run  
   };
   theTask.execute();  
//code  
}    

所以我怎么想这样做,因为我没有参考?我的意思是我应该将theTask保留在哪里才能取消onResume

1 个答案:

答案 0 :(得分:1)

您可以getStatus获取public sealed class NotifyTaskCompletion<TResult> : INotifyPropertyChanged { public NotifyTaskCompletion(Task<TResult> task) { Task = task; if (!task.IsCompleted) { var _ = WatchTaskAsync(task); } } private async Task WatchTaskAsync(Task task) { try { await task; } // ReSharper disable once EmptyGeneralCatchClause catch (Exception e) { } var propertyChanged = PropertyChanged; if (propertyChanged == null) { return; } 的状态。要检查它是否正在运行,您可以将其与AsyncTask.Status.RUNNING进行比较。