0
我有一個登錄活動,其中有一個動畫顯示標誌圖片,登錄過程在運行動畫時在後臺運行。我想等到動畫和登錄過程完成後才能執行程序的下一部分。
我的第一次嘗試是把登錄過程放在一個線程中,並在onAnimationEnd
使用thread.join()
來阻塞,直到線程結束。
它似乎是一個很好的解決方案,但是因爲我使用thread.join()
,主UI線程被阻塞,因此可能會發生ANR。我試過使用AsyncTask
,但它不能處理onAnimationEnd
事件。有沒有其他解決問題的方法?
阻塞,直到任務完成onAnimationEnd
的代碼是這樣的:
protected void onCreate(Bundle savedInstanceState) {
........
title.startAnimation(set);
loginProcess.start();
........
}
public void onAnimationEnd(Animation animation) {
try {
loginProcess.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
........
}
你爲什麼不只是完成加載動畫時登錄過程完成 –
@FrancisFuerte我不想中斷動畫,需要將它完全顯示出來 –
爲什麼需要再次加入這些線程? –