2014-03-26 57 views
0

我是Android新手。Android登錄主題

我有一個UI線程,用戶點擊「登錄」。一旦他們點擊登錄,就會創建一個線程(Android的AsyncTask),該線程將進入互聯網(HTTPPost)並驗證輸入。還有一個「進度條」。現在我的問題是,如何返回到Activity(UI線程?),以便關閉並開始新的活動。

我想出了一個天真的想法,就是讓AsyncTask類成爲Activity的一個子類。這種方式在「onPostExecute」方法中,我可以完成活動。

有沒有適當的方法來做到這一點?

回答

2

你可以通過活動的contextcontructor of asyntaskonPostExecute您可以通過它contextstartActivity從那裏關閉該活動。

public class MyAsyn extends AsyncTask<String, Void, Void>{ 

public MyAsyn(Context con) { 
    context = con; 
} 

} 

,然後在onPostExecute做

i = new Intent(context,AnotherActivity.class); 
        context.startActivity(i); 
        ((Activity) context).finish(); 
1

是的,你可以使Asynctask成爲Activity的內部類,並在onPostExecute中使用startActivity。

如果其在spearate java文件,那麼你可以通過上下文的AsyncTask的構造和startActivity

或者你可以使用接口作爲回調的活動和活動啓動活動本身。你也可以使用Handler。在的AsyncTask的postexecute方法

How do I return a boolean from AsyncTask?

2

呼叫startActivity。這將返回到Activity類。

2

調用此方法在異步任務

protected void onPostExecute(String result) { 

     if(progressDialog!=null&&progressDialog.isShowing()){ 
      progressDialog.dismiss(); 
     } 


    }