2011-05-15 54 views
1

我有一個android以異步方式登錄到我的web服務,但是當任務完成時,我切換到下一個活動,出現一個stutter。這很煩人,因爲在我的活動中有一個進度條(以循環模式),它暫停,重新啓動,然後關閉活動。這看起來不太好。關於活動變更的Android stutter

下面是代碼:

//Create the new intent.  
Intent i = new Intent(); 
//Set the intent to open the pin entry screen 
i.setClassName("com.visualdenim.passpad", "com.visualdenim.passpad.Pin");       
Bundle bun = new Bundle(); 
//Set the data to go in the bundle 
bun.putString("login_info", args[0]); 
//Put the extras into the bundle 
i.putExtras(bun); 
//Start the credentials list activity 
startActivity(i); 
//Set the pretty animation 
overridePendingTransition(R.anim.slide_in, R.anim.slide_out); 
//Close this activity (so the user can't access the login screen once they are logged in) 
finish(); 

我不知道;是否需要在UI線程上執行所有這些操作?是否有任何方法可以加快速度?或者我可以停止進度條旋轉以避免再次啓動?

謝謝,我會選擇正確答案!

回答

0

我通過淡入進度條,然後開始新的活動來解決問題。這樣,用戶在進度條上看不到口吃,所以過渡看起來很順利。

3

把你正在做的任何事情放在一個異步任務中,並將該進度對話框的解除放在該類的onPostExecute方法中。 當你嘗試和處理線程間的通信或者當一個線程(在這裏是你的UI線程)上有太多的負載時,會發生這種口吃。通過異步任務,所有線程維護都由操作系統處理,從而獲得最佳結果。

+0

問題是,我沒有使用對話框,在活動內部有一個進度條(在循環模式下)(即不在進度對話框中),因此我不能解僱它! – 2011-05-16 15:51:02