如何在JavaScript中创建异步任务

时间:2013-01-19 07:13:37

标签: javascript android android-asynctask cross-platform

在我的Android应用程序中,我已经从html页面调用了一个javascript方法到java页面。

 this.start = function () 
 {       
     try 
     { 
          Mynamespace.myapi.getvalue("myvalue", { 
            onSuccess: function (data) 
            { 
               value= JSON.parse(data);
               alert("called"); 
             }, 
             onFailure: function (error) { } 
          }); 
      } 
      catch (err) { }
      if (value== null) { value= new Object(); 
    };

在上面,我的java类中调用了 getvalue 方法并返回了一些值,但在获取OnSuccess / OnFailure中的值之前,会调用下面的行。 How to wait the method up to the callback is called?

if (value== null) { value= new Object(); 

2 个答案:

答案 0 :(得分:0)

private class LongOperation extends AsyncTask<String, Void, String> 
{
    protected void onPreExecute() 
    { 
        progressDialog = new ProgressDialog(activity.this); 
        progressDialog.setTitle("Processing...");
        progressDialog.setMessage("Please wait...");
        progressDialog.setCancelable(true);
        progressDialog.show();
    }

    protected String doInBackground(String... params) 
    {
        try 
        {
            //Getting data from server
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    protected void onPostExecute(String result) 
    {
        progressDialog.dismiss();
    }
  }

如何调用此

ProgressDialog progressDialog;
LongOperation mytask = null;
mytask = new LongOperation();
mytask.execute();

答案 1 :(得分:0)

我已经分析了有关我的查询的更多信息。最后我得到了解决方案。 String that i have loaded with webview was having more single quotes so unable to load with webview。因此,不是调用Success失败回调,而是调用下一行。

现在我已经在我的java类中用“\”替换单引号“\”“。工作正常。 : - )