2012-03-09 41 views
0

我有一个在AsyncTask中运行doInBackground中的一些方法,它调用webservices并将数量的记录插入数据库,在同一用户上单击其他屏幕然后outOfmemoryError即将来临我想暂时停止后台线程直到屏幕加载,然后线程不得不从它停止,以便内存释放。任何人都可以告诉我如何实现这一目标。 在此先感谢。outofmemoryerror在android

+0

该问题有两个阶段。 – 2012-03-09 05:46:33

+0

我不能低估你在问什么 – user1108995 2012-03-09 05:52:11

+0

我认为你应该使用服务这一点。 – Nitin 2012-03-09 06:34:57

回答

0

的的AsyncTask只能执行一次(如果第二试图执行一个异常将被抛出。)..所以暂停和恢复..我认为你应该使用一个backgroundthread,而不是...

0
//decleration 
ProgressDialog dialog; 

//onCreate 
dialog = new ProgressDialog(ActivityName.this); 

public class BackGroundTask extends AsyncTask<String, String, String> { 

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

      //perform background task 

      return null; 
     } 

     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      super.onPreExecute(); 
      dialog.setMessage("Please wait....."); 
      dialog.setIndeterminate(true); 
      dialog.setCancelable(false); 
      dialog.show(); 

     } 

     @Override 
     protected void onPostExecute(String sResponse) { 

       if (dialog.isShowing()) 
         { 
        dialog.dismiss(); 

         } 

    }