Java 在正在上载的对象中保留对AsyncTask的引用
我成功地创建了一个多照片上传器。它按计划工作。除非我希望能够取消上传,如果我需要的话 我知道如果需要取消异步任务,我可以调用Java 在正在上载的对象中保留对AsyncTask的引用,java,android,android-asynctask,Java,Android,Android Asynctask,我成功地创建了一个多照片上传器。它按计划工作。除非我希望能够取消上传,如果我需要的话 我知道如果需要取消异步任务,我可以调用cancel() 我想做的是在我的照片上传对象中保留对AsyncTask的引用,以便在必要时可以引用它以取消 执行以下操作是可行的,但我无法获得异步任务的引用 UploadItem item = new UploadItem(); item.setItemFilePath(imageLocation); item.setTaskIdentifier(UUID.randomU
cancel()
我想做的是在我的照片上传对象中保留对AsyncTask的引用,以便在必要时可以引用它以取消
执行以下操作是可行的,但我无法获得异步任务的引用
UploadItem item = new UploadItem();
item.setItemFilePath(imageLocation);
item.setTaskIdentifier(UUID.randomUUID().toString());
new UploadTask().execute(item);
但是如果我需要取消它,我想保留对该任务的引用。所以我做了一些类似的事情,但它使应用程序崩溃
//Create new upload item
UploadItem item = new UploadItem();
item.setItemFilePath(imageLocation);
item.setTaskIdentifier(UUID.randomUUID().toString());
item.setAsyncTask(new UploadTask());
//Start the upload
item.getAsyncTask().execute(this);
如何在自定义对象中保留对异步任务的引用?
我的自定义上载对象。
public class UploadItem implements Serializable {
public AsyncTask mAsyncTask;
public String itemFilePath = "";
public String taskIdentifier = "";
public boolean isUploading = false;
public AsyncTask getAsyncTask() {
Log.d("Upload Item", "Getting upload task");
return mAsyncTask;
}
public void setAsyncTask(AsyncTask asyncTask) {
Log.d("Upload Item", "Setting upload task");
this.mAsyncTask = asyncTask;
}
public String getItemFilePath() {
return itemFilePath;
}
public void setItemFilePath(String itemFilePath) {
this.itemFilePath = itemFilePath;
}
public boolean isUploading() {
return isUploading;
}
public void setUploading(boolean uploading) {
isUploading = uploading;
}
public String getTaskIdentifier() {
return taskIdentifier;
}
public void setTaskIdentifier(String taskIdentifier) {
this.taskIdentifier = taskIdentifier;
}
}
后台任务:
public class UploadTask extends AsyncTask<UploadItem, Integer, HashMap<String, String>> {
@Override
protected void onPreExecute() { }
@Override
protected void onProgressUpdate(Integer... values) { }
@Override
protected void onPostExecute(HashMap<String, String> r) { }
}
公共类UploadTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){}
@凌驾
受保护的void onProgressUpdate(整型…值){}
@凌驾
受保护的void onPostExecute(HashMap r){}
}
堆栈跟踪是什么?