Java 获取异步任务的返回
我有一个类请求在线json。Is工作正常,但函数无效,我需要函数向活动返回true或false。例如:Java 获取异步任务的返回,java,android,Java,Android,我有一个类请求在线json。Is工作正常,但函数无效,我需要函数向活动返回true或false。例如: public class Async extends AbstractService{ public void getData(fina Context context){ JSONObject param = new JSONObject(); try { param.put("field_1", "1"); param.put("fi
public class Async extends AbstractService{
public void getData(fina Context context){
JSONObject param = new JSONObject();
try {
param.put("field_1", "1");
param.put("field_3", "2");
param.put("field_3", "3");
}catch (Exception e) {}
requester = new HttpRequestController().sendPost("auth/device", param, new HttpRequestController.CallBackRequest(){
@Override
public void run(final String result) {
new Thread(new Runnable() {
@Override
public void run() {
if(resultObj.optBoolean("success")) {
//here return true or false
}
}
}).start();
System.out.println("test auth 1: " + result);
}
});
}
}
public class MainActivity extends baseActivity{
....
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Async auth = new Async();
auth.getUserDevice(this); //how to test is true or false ?
}
}将void更改为布尔值,在函数中,您可以验证是否确实在某个地方发送或生成了json,并放置一个条件: if(json.length()>0)
返回true 出于某种原因,该函数为
void
。异步函数不应该返回某些内容,因为它们是异步的。不可能依赖于你不知道何时(甚至是否)会归还的东西
如果您有兴趣在异步任务成功完成的情况下做一些事情(我猜是这样),那么您应该这样做。这是一个活动的操作,从代码块内部开始,您知道操作已经完成。此操作可以重置状态,也可以发出事件通知感兴趣的人该事件 像这样使用异步任务:
public class MyTask extends AsyncTask<Void,Boolean,Boolean> {
JSONObject param;
MyTask(){
param = new JSONObject();
try {
param.put("field_1", "1");
param.put("field_3", "2");
param.put("field_3", "3");
}catch (Exception e) {}
}
@Override
protected Boolean doInBackground(Void... voids) {
// do your request call and get result then,
return resultObj.optBoolean("success");
}
}
public class MainActivity extends baseActivity {
....
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean b = new MyTask().execute().get();
}
}
伟大的现在我明白了。Tks