交互管理器在任意交互/動(dòng)畫完成之后,允許安排長(zhǎng)期的運(yùn)行工作。特別是,這允許 JavaScript 動(dòng)畫可以順利的運(yùn)行。
應(yīng)用程序可以在交互完成之后根據(jù)以下代碼來(lái)安排運(yùn)行任務(wù):
InteractionManager.runAfterInteractions(() => {
// ...long-running synchronous task...
});
與其他調(diào)度方案進(jìn)行比較:
觸發(fā)處理系統(tǒng)將一個(gè)或者多個(gè)動(dòng)態(tài)觸發(fā)看成是一個(gè)“交互”,并且將推遲 runAfterInteractions() 回調(diào)直到所有的觸發(fā)都已經(jīng)結(jié)束或者被取消了。
交互管理器還允許應(yīng)用程序通過(guò)創(chuàng)建一個(gè)“處理”動(dòng)畫的開端來(lái)注冊(cè)動(dòng)畫,結(jié)束之后進(jìn)行清除:
var handle = InteractionManager.createInteractionHandle();
// run animation... (`runAfterInteractions` tasks are queued)
// later, on animation completion:
InteractionManager.clearInteractionHandle(handle);
// queued tasks run if all handles were cleared
static runAfterInteractions(callback: Function)
在所有交互都完成之后安排一個(gè)函數(shù)來(lái)運(yùn)行。
static createInteractionHandle()
通知管理器已經(jīng)啟動(dòng)了一個(gè)交互。
static clearInteractionHandle(handle: number)
通知管理器一個(gè)交互動(dòng)作已經(jīng)完成了。