我有调用自己的asynctask类的活动来获取通过API调用加载的数据。在活动onCreat()
中,我正在调用aynctask,如下所示,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pickup_activity);
if (!dataDelivery.isEmpty()) { //line 77
new PickupAsyncTask(getBaseContext(), new OnTaskCompleted() {
@Override
public void onTaskCompleted(JSONArray responseJson) {
Constants.dataDelivery = responseJson.toString();
loaddata();
System.out.println("dataDelivery");
}
}).execute();
}
loaddata();
}
public void loaddata() {
dataDelivery = Constants.getDataDelivery();
try {
JSONArray dataArray = new JSONArray(dataDelivery);
for (int i = 0; i < dataArray.length(); ++i) {
JSONObject object = dataArray.getJSONObject(i);
if (!pickupOutlet.contains(object.getString("OutletName")))
pickupOutlet.add(object.getString("OutletName"));
}
findViewById(R.id.loadingPanel).setVisibility(View.GONE);
} catch (JSONException e) {
e.printStackTrace();
}
}
然后jsonresponse
将被加载到Constants
对象,以便我可以在下面显示的加载方法中使用它,
我只想在dataDelivery
为空时才进行asynctask调用。如果不是,它应该调用asynctask。所以我尝试如下所示,它最终给出了这个例外。
我的问题是如何正确使用if条件。