我正在开发一个使用其他API调用的应用程序和使用页面滑动标签条的4个标签但是我的问题是当我从左到右移动标签时显示页面已经太晚了并且打了5到8个秒为什么?在这里我使用片段。我的应用程序就像是什么应用程序。
提前致谢。
class GetTasks extends AsyncTask<String, Void, String> {
protected void onPreExecute() {
progressBar.setVisibility(View.VISIBLE);
}
protected void onPostExecute(String response) {
progressBar.setVisibility(View.GONE);
if (response != null && response.length() > 0) {
try {
JSONArray jsonArray = new JSONArray(response);
if (jsonArray != null && jsonArray.length() > 0) {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
Gson gson = new Gson();
Task task = gson.fromJson(jsonObj.toString(),Task.class);
tasklist.add(task);
}
}else{
nodata.setVisibility(View.VISIBLE);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
nodata.setVisibility(View.VISIBLE);
}
Collections.reverse(tasklist);
ListAdapter adapter = new ListAdapter(tasklist);
list_view.setAdapter(adapter);
}
@Override
protected String doInBackground(String... params) {
try {
String response = Util.excuteGet(params[0]);
return response;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}`
答案 0 :(得分:3)
一种简单的方法是使用 AsyncTask (后台服务)。 回收商视图代替列表视图。虽然下载速度取决于连接,但您可以使用对话框或进度条向用户显示。
答案 1 :(得分:0)
阅读这篇文章。 https://medium.com/@laanayabdrzak/android-performance-patterns-rescue-tips-8c1e4c7cb1f0#.v2kpxt7cp
更好的性能是应用程序开发的另一半))
答案 2 :(得分:0)
您的问题与性能改进无关,您只是误用了AsyncTask。但是,至于表现,在Udacity.com上你可以找到关于这个主题https://www.udacity.com/course/android-performance--ud825
的不错课程