我正在開發一款應用程序,可在檢測到NFC卡後從我的服務器下載信息。完成多項任務後Android會執行
當檢測到卡,我開始 - 一個的AsyncTask從我的服務器 下載一些數據 - 出現在屏幕
上的AsyncTask和動畫都經過彈出的動畫都做了,我想啓動一個方法,在彈出窗口中顯示下載的數據。
什麼是觸發這種新方法的正確方法?它只能在滿足兩個條件時開始。
我正在開發一款應用程序,可在檢測到NFC卡後從我的服務器下載信息。完成多項任務後Android會執行
當檢測到卡,我開始 - 一個的AsyncTask從我的服務器 下載一些數據 - 出現在屏幕
上的AsyncTask和動畫都經過彈出的動畫都做了,我想啓動一個方法,在彈出窗口中顯示下載的數據。
什麼是觸發這種新方法的正確方法?它只能在滿足兩個條件時開始。
你Animation
對象有方法setAnimationLister
。它採用一個類對象的參數來實現接口Animation.AnimationListener
。此接口需要實施三種方法:
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
動畫結束時會觸發onAnimationEnd
。如果我沒有誤解你,這是你所需要的
編輯:
可以有兩個布爾值,boolean animationFinished = false, downloadFinished = false
;當onPostExecute
被稱爲將downloadFinished
設爲true時,請致電。 當onAnimationEnd
被觸發animationFinished = true
並致電。 應該像下面這樣開始:
if (!animationFinished || !downloadFinished)
return;
在您使用下載數據異步任務添加onPostExecute方法來刪除動畫彈出窗口並顯示下載的數據,以及這樣的:
protected void onPostExecute(Long result) {
//put code to disable animation popup
//code for displaying downloaded data popup
}
欲瞭解更多信息請查看http://developer.android.com/reference/android/os/AsyncTask.html
什麼是「彈出式動畫」?你的意思是以動畫方式出現的彈出窗口?如果是這樣,需要多長時間?或者你的意思是彈出窗口顯示某種動畫圖形?再次,如果是這樣,需要多長時間才能完成? – Squonk 2013-04-20 18:04:23
我的意思是一個以動畫方式出現的彈出窗口。大約需要一秒鐘。但是,如果數據在一秒鐘內加載,動畫就會被中斷,而且看起來不再流暢。 – Mtvw 2013-04-20 18:15:53
因此,'AsyncTask'使用'onPostExecute(...)'將數據保存到全局字段,然後如果該字段不是「null」,則彈出窗口在動畫完成時從該字段加載數據。爲了補償延遲下載,在彈出的類中有一個方法,可以通過'AsyncTask'的'onPostExecute(...)'方法來調用,以通知彈出窗口數據可用。 – Squonk 2013-04-20 19:19:06