0

я получаю утечка памяти, но я не знаю, как решить этоПочему я получаю утечку памяти

public class ActivityA extends Activity { 
CheckBox cb1,cb2,cb3,cb4; 
public static int flag=1,flag2=0,flag3=1; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.setting); 
    cb1=(CheckBox) findViewById(R.id.checkBox1); 
    cb2=(CheckBox) findViewById(R.id.checkBox3); 
    cb3=(CheckBox) findViewById(R.id.checkBox4); 
    new LoadAsync().execute(); 
    graph=(ImageView)findViewById(R.id.imageView1); 
public void Onclick(View arg0) { 
    // TODO Auto-generated method stub 
    if(cb1.isChecked()) 
     flag1=1; 
    else 
     flag1=0; 
    if(cb2.isChecked()) 
     flag2=1; 
    else 
     flag2=0; 
    if(cb3.isChecked()) 
     flag3=1; 
    else 
     flag3=0; 
    if(flash.isChecked()) 
     flash_flag=1; 
    else 
     flash_flag=0; 
     if(flag1==1 && flag3==1 && flag2==1) 
     graph.setImageResource(R.drawable.graph1); 
     else if(flag1==1 && flag3==1 && flash_flag==0) 
     graph.setImageResource(R.drawable.graph2); 
} 
public class LoadAsync extends AsyncTask<Void, Void, Boolean> {//inner class 
    ProgressDialog pDialog; 
@Override 
    protected void onPreExecute() { 
     // TODO Auto-generated method stub 
     super.onPreExecute(); 
     pDialog = ProgressDialog.show(ActivityA.this,"Loading ", "Please wait");**// memory leak points me here** 
    } 
    @Override 
    protected Boolean doInBackground(Void... params) { 
     // TODO Auto-generated method stub 
     loadToDB(); 
     return true; 
    } 
    @Override 
    protected void onPostExecute(Boolean result) { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result); 
     pDialog.dismiss(); 
    } 
} 
private void loadToDB() { 
//load the database 
     } 

} 

Эта деятельность находится в моем TabActivity имени MyTab

Это мой журнал кот ошибка

7-25 08:58:10.311: E/WindowManager(1583): Activity com.example.app.OneTouchPanelActivity has leaked window [email protected] that was originally added here 
07-25 08:58:10.311: E/WindowManager(1583): android.view.WindowLeaked: Activity com.example.app.MyTab has leaked window [email protected] that was originally added here 
07-25 08:58:10.311: E/WindowManager(1583): at android.view.ViewRoot.<init>(ViewRoot.java:247) 
07-25 08:58:10.311: E/WindowManager(1583): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 
07-25 08:58:10.311: E/WindowManager(1583): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
07-25 08:58:10.311: E/WindowManager(1583): at android.view.Window$LocalWindowManager.addView(Window.java:424) 
07-25 08:58:10.311: E/WindowManager(1583): at android.app.Dialog.show(Dialog.java:241) 
07-25 08:58:10.311: E/WindowManager(1583): at android.app.ProgressDialog.show(ProgressDialog.java:107) 
07-25 08:58:10.311: E/WindowManager(1583): at android.app.ProgressDialog.show(ProgressDialog.java:90) 
07-25 08:58:10.311: E/WindowManager(1583): at android.app.ProgressDialog.show(ProgressDialog.java:85) 
07-25 08:58:10.311: E/WindowManager(1583): at com.example.app.ActivityA$LoadAsync.onPreExecute(ActivityA.java:204) 
07-25 08:58:10.311: E/WindowManager(1583): at android.os.AsyncTask.execute(AsyncTask.java:391) 

ответ

4

Исключенные окна исключение обычно вызвано диалогом, которые не отклоняются должным образом. т.е. если вы планируете отклонить диалог в Onpostexecute asynctask, и действие, которое его создало, закончилось, это вызовет утечку окна. Удостоверьтесь, что вы деактивируете диалог в onPause активности.

+0

Я попробую this.thnx –

 Смежные вопросы

  • Нет связанных вопросов^_^