【发布时间】:2018-01-03 14:56:49
【问题描述】:
抱歉,这似乎是一个基本问题。我已经更新了 Android Studio,并注意到我的 AsyncTasks 上有一些内存泄漏警告说我应该将它们设为静态。我已将它们设为静态,但似乎无法使 List、ProgressBar、ImageView 之类的东西正常工作而不会收到相同的内存泄漏警告。似乎无论我尝试哪种方式都无法获胜。我想我的问题是:
AsyncTask 是否应该是静态的?官方文档并未将其设为静态,但我的 IDE 会发出警告说他们应该这样做。
如果它们是静态的,我如何在静态 AsyncTask 中启动和停止 ProgressBar。
编辑
这仍然会抛出“这个 AsyncTask 类应该是静态的,否则可能会发生泄漏”
private class DownloadCategoryTask extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
String url = Config.API_URL +
"/Index.aspx?" +
"type=3&" +
"site_id=" + SITE_ID;
String method = "GET";
String array_name = "categories";
Downloaded_category_array = Config.getJSONNew(url, method, array_name, context);
return "";
}
protected void onPostExecute(String result) {
if(isCancelled()){
return;
}
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//Update your UI here
//showProgressBar();
}
});
Populate_category_list();
}
}
【问题讨论】:
-
你找到解决办法了吗?
标签: android android-asynctask static