我有一个活动,每次呼叫结束时都会被调用。此活动低于AsyncTask。
UploadRecordings uploadRecordings = new UploadRecordings();
uploadRecordings.execute(context);
现在,当我每次都有新的AysncTask创建时,我会一个接一个地调用。但Android将AsyncTask的数量限制为5.所以问题是我想检查AsyncTask是否已经在运行,如果发现正在运行,则不要创建新的AsyncTask。如果没有运行AsyncTask,我想创建一个新的AsyncTask。
任何帮助都要得到赞赏。
答案 0 :(得分:5)
答案 1 :(得分:4)
您可以使用 getStatus ()
返回此任务的当前状态。
if(YourAsyncTaskOBJ.getStatus() == AsyncTask.Status.RUNNING)
{
// AsyncTask Running
}
答案 2 :(得分:0)
覆盖onPostExecute()
的{{1}}方法,该方法在呼叫完成时执行。在AsyncTask
中设置一些标记并相应地继续。
答案 3 :(得分:0)
处理AsyncTask
将AsyncTask
放入片段。
使用片段可能是处理配置更改的最简洁方法。默认情况下,Android会像活动一样销毁并重新创建片段,但是,片段可以保留其实例,只需在其中一个回调方法中调用:setRetainInstance(true)
,例如在onCreate()
中
请找到完整的实施和说明来处理AsyncTask
。
答案 4 :(得分:0)
如果您想在没有任何内容运行的情况下创建单个AsyncTask
,您可以执行以下操作:
if(uploadRecordings == null || uploadRecordings.getStatus() != AsyncTask.Status.RUNNING){
uploadRecordings = new UploadRecordings();
uploadRecordings.execute(context);
}
这假定您的uploadRecordings
是成员变量。 e.g。
private UploadRecordings uploadRecordings = null;