2014-02-12 62 views
0

我正在开发一个应用程序,其中有四个选项卡..每个执行单独的操作。在操作完成时的最后一个选项卡中,刷新应用程序。VIEW未附加到窗口管理器

的问题是,当应用程序窗口刷新泄漏误差obtained.view不附接到窗manager.the误差被示出在线路

@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

是活动仍对前景me.Thanks,你不打开任何新的活动?

另外,你有没有考虑在选项卡的容器上使用ViewSwitcher,而不是对话框?谷歌建议尽可能避免对话框(尤其是ProgressDialog):http://developer.android.com/guide/topics/ui/dialogs.html

如果您希望仍然使用ProgressDialog,请考虑应该废除对话框的所有可能状态:活动被销毁,asyncTask被取消(应该在当活动被破坏时以及用户取消对话时,最少发生这种情况取决于您的应用的逻辑)。