什么是SwirldMain?
public interface?SwirldMain?extends java.lang.Runnable
要實(shí)現(xiàn)一個(gè)swirld應(yīng)用芬位,需要?jiǎng)?chuàng)建一個(gè)實(shí)現(xiàn)了SwirldsMain的類。它的創(chuàng)建方法沒有參數(shù),run()方法直到用戶退出swirld都保持運(yùn)行眶明。
方法概要
void?init(Platform?platform, long selfId)
這個(gè)方法只會(huì)由Platform來調(diào)用
SwirldState?newState()
實(shí)例化并返回一個(gè)SwirldState 當(dāng)前SwirldMain 對(duì)應(yīng)的對(duì)象隔躲。
void?preEvent()
platform 在SwirldMain創(chuàng)建一個(gè)事件前調(diào)用這個(gè)方法。
default void?release(Platform?platform, int id)
關(guān)閉不是由Platform.create*實(shí)例化的窗口普气。
void?run()
應(yīng)用在這里管理屏幕顯示和 I/O, 以及按需創(chuàng)建交易盗尸。
方法詳解
init
void?init(Platform?platform, long selfId)
這個(gè)方法只會(huì)由Platform來調(diào)用柑船。它傳遞了patform的引用,因此SwirldMain知道改調(diào)用誰(依賴注入)泼各。
參數(shù):
platform - 初始化SwirldMain的Platform
selfId - 成員(自己)的ID 號(hào)
release
default void?release(Platform?platform, int id)
關(guān)閉不是由Platform.create*實(shí)例化的窗口鞍时。這個(gè)方法可能被不是Swing事件線程調(diào)用。
參數(shù):
platform - 實(shí)例化這個(gè) SwirldMain的Platform
id - 成員ID 號(hào)(自己)
run
void?run()
應(yīng)用在這里管理屏幕顯示和 I/O, 以及按需創(chuàng)建交易扣蜻。它應(yīng)該在用戶關(guān)閉應(yīng)用時(shí)退出逆巍,但也有可能更早。
定義:
在接口 java.lang.Runnable的方法run
preEvent
void?preEvent()
platform 在SwirldMain創(chuàng)建一個(gè)事件前調(diào)用這個(gè)方法莽使。SwirldMain 可選擇在這里創(chuàng)建交易锐极,確信它們也會(huì)馬上被發(fā)送。 一個(gè) SwirldMain 可以被寫成在這個(gè)方法里做所有的事情芳肌,而在run()方法什么也不做立即返回灵再。
run()有它自己的線程,這個(gè)線程屬于特定swirld運(yùn)行應(yīng)用的SwirldMain庇勃。而preEvent() 運(yùn)行在platform每次調(diào)用這個(gè)方法時(shí)創(chuàng)建的特殊線程里檬嘀,并被限制在0.1秒返回。如果preEvent()沒有在0.1秒返回责嚷,線程將會(huì)被中斷鸳兽。
newState
SwirldState?newState()
實(shí)例化并返回一個(gè)對(duì)應(yīng)于SwirldMain對(duì)象的?SwirldState 對(duì)象。通常罕拂,如果類ExampleMain實(shí)現(xiàn)了SwirldMain揍异,那么newState會(huì)返回ExampleMain的對(duì)象。
Returns:
新創(chuàng)建的 SwirldState 對(duì)象