簡體   English   中英

替換異步任務后出現可運行錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM