[英]Runnable error After Asynchtask replacement
在將我的 asynctask 替換為可運行的以將數據上傳到服務器后,我在下面的最后一行出現錯誤:任何指針將不勝感激。
無法從具有 void 結果類型的方法返回值
在這條線上
return *imageProcessClass.ImageHttpRequest(ServerUploadPath, HashMapParams);
ExecutorService service = Executors.newSingleThreadExecutor ( );
service.execute ( new Runnable ( ) {
@Override
public void run() {
//preexecute
runOnUiThread ( new Runnable ( ) {
@Override
public void run() {
progressDialog = ProgressDialog.show( UploadActivity.this,"Your Data is Uploading To Our Servers",
"Please Wait And Ensure Data is On With Bundles. 3G or WiFi data is preferred",false,false);
}
} );
//doinbackground
ImageProcessClass imageProcessClass = new ImageProcessClass ();
HashMap<String,String> HashMapParams = new HashMap<>();
HashMapParams.put(USER_NAME, userName);
HashMapParams.put(USER_EMAIL, userEmail);
HashMapParams.put(USER_PHONE, userPhone);
HashMapParams.put(ImagePath1, imageView1);
return imageProcessClass.ImageHttpRequest(ServerUploadPath, HashMapParams);
問題是run()
沒有返回值,而您之前使用AsyncTask
的解決方案允許返回值。
我希望這能帶來一些回報。
imageProcessClass.ImageHttpRequest(ServerUploadPath, HashMapParams);
但這有void
作為返回值
@Override
public void run() {
...
}
我認為您需要一個新的解決方案來返回結果,也許使用監聽器並觸發回調?
interface ResultListener{
public void onResult(result: ResultType)
}
@Override
public void run() {
...
listener.onResult(imageProcessClass.ImageHttpRequest(ServerUploadPath, HashMapParams);)
}
// Sorry I'm not very familiar with Java anymore, hope you get the idea :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.