Android 视图未附加

Android 视图未附加,android,progressdialog,Android,Progressdialog,嗨,在我的应用程序中,我越来越接近原力了 错误-视图未附加到窗口管理器 //asynctask for groupnames class GroupDataLoad extends AsyncTask<Void, Void, Void>{ @Override protected void onPreExecute() { // TODO Auto-generated method stub su

嗨,在我的应用程序中,我越来越接近原力了

错误-视图未附加到窗口管理器

//asynctask for groupnames
    class GroupDataLoad extends AsyncTask<Void, Void, Void>{

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();

            mCustomProgressDialog = CustomProgressDialog.createDialog(
                    UserMenuActivity.this, "", "");

            mCustomProgressDialog.show();   
            mCustomProgressDialog.setCancelable(false); 
        }

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub

            dbHelper = new DatabaseHelper(UserMenuActivity.this);
            //getting the group list
            mXMPPConn.getContactList();

            ParseValues.parsedGroupList.clear();
            APIVariables apiVariables = new APIVariables();
            ParseValues.getGroupList(apiVariables.getGroupList("abc.com"));

            int size = ParseValues.parsedGroupList.size();
            for(int i=0;i<size;i++){
                String groupName = ParseValues.parsedGroupList.get(i).getGroup_name();
                if(CGMStaticVariable.CommonConnection.isConnected())
                {
                    createRoom(groupName, CGMStaticVariable.CommonConnection);
                }
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            setExpandableListView();
            mCustomProgressDialog.dismiss();    
        }
    }
//组名的异步任务
类GroupDataLoad扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
mCustomProgressDialog=CustomProgressDialog.createDialog(
UserMenuActivity.this,“,”);
mCustomProgressDialog.show();
mcustompressDialog.setCancelable(false);
}
@凌驾
受保护的Void doInBackground(Void…参数){
//TODO自动生成的方法存根
dbHelper=newdatabasehelper(UserMenuActivity.this);
//获取组列表
mXMPPConn.getContactList();
ParseValues.parsedGroupList.clear();
APIVariables APIVariables=新的APIVariables();
grasevalues.getGroupList(apivaries.getGroupList(“abc.com”);
int size=ParseValues.parsedGroupList.size();

对于(int i=0;i我想我当时做了其他事情,但如果现在必须修复它,我会在异步任务启动时在活动中创建进度对话框。我会在活动中保留对对话框的引用,并在任务完成后将其取消。为了告诉活动任务已完成:

  • 创建一个接口
  • 使活动实现接口
  • 使异步任务接收并保留一周对 实现接口的对象
  • 通过活动(“本”) 完成任务
  • 在onPostExecute()中,调用 传递对象
  • 在该方法的实施过程中, 销毁/关闭对话框

  • 此外,如果活动在任务完成之前被销毁,对话框也将被销毁。使用弱引用非常重要,这样在可能很长的任务完成之前,活动才被引用。

    您能补充一些关于启动对话框的活动及其生命周期的说明吗?我有一个类似的例子lar问题,问题是在onPostExecute()之前,活动已被销毁(关闭),对话框位于此处dismissed@stan0是的,我的问题是一样的,我在调用onPostExecute之前销毁活动,那么解决方案是什么?你能告诉我解决方案吗,我应该怎么做..你说的我不清楚