我正在开发一个应用程序,其中有四个选项卡..每个进行单独的操作。在操作完成后的最终选项卡中。应用程序刷新。
问题是当app刷新时窗口泄漏错误被获取。视图没有附加到窗口管理器。错误显示在行
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
populateSpinner();
}
完全在pDialog.dismiss();
活动的主要组成部分如下所示
public class DayStartActivity extends Activity {
ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
new Getdata().execute();
// new GetRouteoptmdata().execute();
}
private class Getdata extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(DayStartActivity.this);
pDialog.setMessage("ON PROCESS..PLEASE WAIT..");
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
ServiceHandler jsonParser = new ServiceHandler();
String json = jsonParser.makeServiceCall(URL_DAYSTARTDATA,
ServiceHandler.POST);
if (json != null) {
try {
if(json.contains("<!--"))
json=json.substring(0, json.indexOf("<!--"));
Log.e("Response according to Gettabledata:: ", " " + json);
// JSONObject jsonObj = new JSONObject(json);
// if (jsonObj != null) {
JSONArray daystartdata = new JSONArray(json);
// .getJSONArray("categories");
for (int i = 0; i < daystartdata.length(); i++) {
JSONObject jsonChildNode = daystartdata
.getJSONObject(i);
DaystartSetGet daystart = new DaystartSetGet(
jsonChildNode.getString("altroutecode"),
jsonChildNode.getString("route"),
jsonChildNode.getString("salesrep"),
jsonChildNode.getString("name"),
jsonChildNode.getString("date"),
jsonChildNode.getString("time"),
jsonChildNode.getString("deleverydate"),
jsonChildNode.getString("week"),
jsonChildNode.getString("day"),
jsonChildNode.getString("vehiclenumber"));
routecodelist.add(daystart);
}
// }
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("JSON Data", "Didn't receive any data from server!");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
}
}
当应用程序第一次运行时没有问题。刷新选项卡时会出现问题。
请帮帮我。谢谢你提前
答案 0 :(得分:0)
仍然是前台活动,您不打开任何新活动?
另外,您是否考虑在选项卡的容器上使用ViewSwitcher而不是对话框?谷歌建议尽可能避免对话(特别是ProgressDialog):http://developer.android.com/guide/topics/ui/dialogs.html
如果你仍想使用ProgressDialog,请考虑应该解除对话框的所有可能状态:活动被销毁,asyncTask被取消(至少应该在活动被销毁时以及用户取消时发生)对话框,取决于你的应用程序的逻辑。)