2016-08-04 48 views
-3

我已經使用protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); } MainActivity類使用其data作爲用戶的處理的結果的,我已經介紹了另一類用於示出ProgressDialog pd; ---- >>>>如何將受保護功能中的參數用於其他受保護的功能?

public class Loading 
     extends AsyncTask<Void, Void, Void> 
{ 
    public Loading() {} 

    protected Void doInBackground(Void... paramVarArgs) 
    { 

/// ////一些私有函數會在這裏需要onActivityResult的數據值///////// ///////////////如何在這裏使用該數據值/// /////////// return null; }

protected void onPostExecute(Void paramVoid) 
    { 
     super.onPostExecute(paramVoid); 
     MainActivity.this.pd.dismiss(); 

    } 

    protected void onPreExecute() 
    { 
     super.onPreExecute(); 
     MainActivity.this.pd.setTitle("Loading App...."); 
     MainActivity.this.pd.setMessage("Please Wait....."); 
     MainActivity.this.pd.show(); 
    } 
} 

現在我想使用data這是在參數爲protected void onActivityResult(int requestCode, int resultCode, Intent data)protected Void doInBackground(Void... paramVarArgs){} 我該怎麼做?謝謝。

+0

爲什麼你必須這樣做?爲什麼不移除這個AsyncTask,在startActivityForResult()時顯示ProgressDialog,並在onActivityResult()時關閉它? – anhtuannd

+0

,因爲我想調用一些需要這些數據的私有函數,這些函數必須寫在doInbackground()中,這些函數需要onActivityResult參數 – user3351571

+0

中的數據值,這些函數需要顯示ProgressDialog pd的時間;直到這些函數的任務完成 – user3351571

回答

0

我得到了它WOOW

AsyncTask Myasytsk = new AsyncTask() { 
@Override 
protected Object doInBackground(Object[] params) { 
    MainActivity.this.systemWritedo(pathfile); 

    return null; 
} 
     protected void onPostExecute(Object result) { 

      MainActivity.this.pd.dismiss(); 
      MainActivity.this.reboot(); 

     } 

     protected void onPreExecute() { 

      MainActivity.this.pd.setTitle("Installation...."); 
      MainActivity.this.pd.setMessage("Please Wait....."); 
      MainActivity.this.pd.show(); 

     } 
}; 
Myasytsk.execute(); 
0

的AsyncTask類應該是這樣的。

public class Loading extends AsyncTask<Void, Void, Void> 
{ 
     private MainActivity act = null; 

     //this is constructor 
     public Loading(MainActicity _act) { 
      this.act = _act; 
     } 
     protected Void doInBackground(Void... paramVarArgs) 
     { 
      //your codes 
     } 
     protected Void onPostExecute(Object result) { 
      //your codes 
      act.pd.dismiss(); 
      act.reboot(); 
     } 
} 

可以在MainActivity使用的AsyncTask類

private Loading loadingTask; 
public ProgressDialog pd; //your progress dialog must be public 
private void DoSomething(){ 

         //"this" send reference of MainActivity to Loading class 
    loadingTask = new LoadingTask(this); 
    loadingTask.execute(); 

}