2013-07-30 31 views
1

我有一个AsysTaskAsynTask不运行以onPostExcute并等待5分钟

class myAsyncTask extends AsyncTask<Void, Void, Integer> { 
     ProgressDialog progDialog; 

     myAsyncTask() { 
     } 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      progDialog = ProgressDialog.show(
        SwitchArticle.this, 
        "Loading", 
        "Pleasewait", 
        true, 
        true, 
        new DialogInterface.OnCancelListener(){ 
         @Override 
         public void onCancel(DialogInterface dialog) { 
          myAsyncTask.this.cancel(true); 
         } 
        } 
      ); 
     } 

     @Override 
     protected Integer doInBackground(Void... arg0) {    
      // Call a function load Data Json... 

      return 1; 
     } 

     @Override 
     protected void onProgressUpdate(Void... values) { 
      // TODO Auto-generated method stub 
      super.onProgressUpdate(values);  
     } 

     @Override 
     protected void onPostExecute(Integer result) { 
      super.onPostExecute(result); 
      if (result != 1) { 
       progDialog.dismiss(); 
       Toast.makeText(
         SwitchArticle.this, 
         "Error Load Data", 
         Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
       //.. Bind Data To Adapter 
      } 
      progDialog.dismiss(); 
     } 
} 

呼叫中的onCreate功能:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     myAsyncTask ma = new myAsyncTask(); 
     ma.execute();  
    } 

第一次,这个代码是负载数据和结合listview很好。 然后,我按回其他活动,并将此活动调用asyntask,此代码运行非常好。

当我回到其他活动,并完成此活动称为asysntask。我按下锁屏设备并等待大约5分钟。我解锁设备,并回来活动称之为asysntask。 myAsynTask运行doInBackGround而不运行到onPostExcute将数据绑定到ListView。

对不起,因为我的英语很差。我是越南人。

回答

0

我认为onCreate在您解锁屏幕并返回到您的活动时被调用。这意味着您的AsyncTask将再次开始运行...希望可以帮助