在Android应用程序中,我使用导航抽屉,侧抽屉上有6个片段,每个片段需要从服务器获取一些数据,这使得它挂起或延迟打开/关闭抽屉并使我的应用程序性能非常慢。请建议我从服务器获取数据并在片段中设置为文本框的最佳方式。
从服务器类获取数据的代码
public String getName() {
JSONObject ob = getBalnce();
String name = null;
try {
name = ob.getString("UserName");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return name;
}
public String getBalance() {
JSONObject ob = getBalnce();
String bal = null;
try {
bal = ob.getString("UserBalance");
if (bal == null) {
bal = "₹ " + "0";
} else {
bal = "₹ " + bal;
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bal;
}
public static JSONObject getBalnce() {
final JSONObject toSend = new JSONObject();
JSONObject ob = null;
{
try {
toSend.put("Id", classname.Id);
String jsonStr = toSend.toString();
DataPost transmitter = new DataPost();
data = transmitter.execute(jsonStr,
url).get();
data = data.replaceAll("\n", "");
JSONArray obj = new JSONArray(data);
ob = obj.getJSONObject(0);
java.lang.System.gc();
} catch (JSONException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
return ob;
}
用于获取和设置片段
中的数据的代码Balance cm = new Balance();
name = cm.getName();
if (uname.length() > 10) {
name.setText("Hi," + " " + name.substring(0, 10));
}
当我们从一个抽屉切换到另一个抽屉时,所有片段中的问题都相同。