Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)

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

編輯:關於Android編程

 

 

(一).前言:

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

 

(二).RoboGuice集成

2.1.簡介說明

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

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

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

 

data-cke-saved-src=https://www.android5.online/Android/UploadFiles_5356/201702/2017022313592379.png

data-cke-saved-src=https://www.android5.online/Android/UploadFiles_5356/201702/2017022313592382.png

 

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達到一樣的效果啦。使用實例如下:

       

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

       

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

       

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved