AndroidAnnnotations注入架構使用之第三方框架組成RoboGuice(十三)

來源:互聯網
上載者:User

AndroidAnnnotations注入架構使用之第三方框架組成RoboGuice(十三)

 

 

(一).前言:

前面我們已經對於AndroidAnnotations架構的線程處理做了講解,今天我們開始具體學習一下第三方框架組成。

 

(二).RoboGuice整合

2.1.簡介說明

自AndroidAnnotations1.0起,AndroidAnnotations已經完成整合了RoboGuice1.1.1。

自AndroidAnnotations3.1起,發布的RoboGuice1.0版本已經從RoboGuice2.0版本中移除了。

自AndroidAnnotations3.3起,從發布的RoboGuice3.0版本開始,該更新已經被支援。現在RoboGuice的最新版本是3.0。

 

 

2.2.整合RoboGuice和AndroidAnnotations

  • 整合AndroidAnnotations架構到項目中(具體方法見:【FastDev4Android架構開發】AndroidAnnnotations注入架構介紹和Android Studios基本配置(七)
  • 整合RoboGuice架構到項目中(具體方法見:RoboGuice使用詳解)
  • 修改我們的Activity,現在不需要該Activity繼承RoboActivity了,只要對該Activity使用@RoboGuice註解即可。(原來使用RoboGuice是需要Activity繼承RoboActivity的)。
  • 現在讓我們來看一下使用的例子

     

    @EActivity(R.layout.main)@RoboGuice({AstroListener.class,AnotherListener.class})public classAstroGirl extends Activity {     @ViewById    EditText edit;     @Inject    GreetingService greetingService;     @Click    void button() {        String name =edit.getText().toString();        greetingService.greet(name);    }} public classAstroListener {         @Inject        Context context;         public voiddoSomethingOnResume(@Observes OnResumeEvent onResume) {                Toast.makeText(context,Activity has been resumed, Toast.LENGTH_LONG).show();        }}
    2.3.RoboGuice優點

     

    RoboGuice對於Android應用程式有GoogleGuice架構的支援,這意味著我們可以從依賴注入獲得更加的優勢,高內聚,低耦合。

    2.4.AndroidAnnotations優點

    • 在Android編譯的時候進行注入組件(沒有效能的影響)
    • 我們不需要在繼承RoboActivity類了,這意味中我們可以整合任何類了,哪怕這些類不支援RoboGuice。這樣我們就可以更多思考如何擴充我們的基類。
    • 支援@Click,@Background,@UiThread,@ItemSelect等等註解。

       

      2.5.@EBean中使用RoboGuice

      自AndroidAnnotations2.4起

      假設我們現在有一個@EBean註解的組件,現在我們想用RoboGuice來注入一些組件。使用@EActivity註解的Activity允許使用RoboGuice注入。不過現在RoboGuice現在僅支援Activity。從AndroidAnnotations官方發布的訊息是:現在他們沒有花很多精力在RoboGuice上面,因為如果要全面支援RoboGuice,那麼現在項目需要改動很多地方了。

      但是這也不意味著我們不能在@EBean註解的類中使用RoboGuice,你只需要手動進行Guice注入,就和RoboActivity達到一樣的效果啦。使用執行個體如下:

       

      @EBeanpublic class MyBean{     @App    MyRoboApplication application;     @Inject    SomeClass myRoboGuiceDependency;     @AfterInject    void injectRoboGuiceDependencies() {       application.getInjector().injectMembers(this);    } } 

       

      到此位置關於AndroidAnnotations第三方框架組成之RoboGuice整合已經全部講解完成了。

       

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.