2010-05-18 69 views
7

有很多Eclipse RCP的教程與明顯的第一步開始:「創建一個新的插件項目......」當選擇「生成激活劑......」創建一個新的Eclipse插件項目時

看來約。其中70%指定檢查「生成激活器,一個控制插件生命週期的Java類」。其他人明確表示不檢查切換。

alt text http://img179.imageshack.us/img179/6710/newpluginoptions.png

它的我也不清楚,是什麼產生的激活器類爲您做的,當你需要一個,當你不知道。

爲了成爲一個突出的選項,您每次創建一個新的插件項目(它似乎默認設置),這個選項沒有很好地解釋我發現的任何地方。

創建Eclipse插件項目時選擇此選項的任何建議/規則?

回答

4

在Eclipse本身(對話框上下文相關的幫助),它說這一點,這是用處不大。

「An activator是一個控制插件生命週期的Java類,只有當您需要在插件啓動或關閉時執行工作時才需要。

將此選項設置爲ON時,將爲您的新項目自動生成一個Activator.java類。

因此,它聽起來像是(有點新手),你不知道爲什麼或在插件啓動/關閉時需要做什麼額外的工作,你可以放心地關閉它。在項目源文件夾中只顯示少一個.java文件。

+0

但問題是'我應該何時創建一個激活器',而不是'如何...'。 – FelixM 2010-05-19 16:36:33

+0

好點。刪除最後一節並提出相關問題。 有沒有辦法嵌入一個鏈接到其他相關的問題? – 2010-05-19 18:28:52

1

如果你真的想知道,看看OSGi specification;版本4是當前版本。自Eclipse 3以來,每個插件都是OSGi包。 bundle啓動和停止時會通知bundle激活器,這通常發生在Eclipse啓動和關閉時。您還可以安裝在其他軟件包(即插件)啓動時通知的監聽程序或註冊OSGi服務。

例如,我使用偵聽器在我的包完成啓動後啓動某些操作;否則我可能會遇到類加載器問題。您可能還需要激活器來存儲BundleContext,它允許您加載類並允許您訪問該包的名稱和版本。

4

找出的一種方法是查看生成的類。原來它是AbstractUIPlugin的一個子類。查看JavaDoc,它提供了諸如偏好管理,圖像註冊表等服務。如果你需要這些,你可能想要使用它。它是Plugin的一個子類,這是有道理的。

此外,它實現了BundleActivator,它有一些有用的JavaDoc。這爲你提供了start()和stop()的存根,它允許你在這裏掛鉤你自己的代碼。它還會生成一個靜態便捷方法getDefault(),它爲您提供Activator。這就是它的全部。

相關問題