zoukankan      html  css  js  c++  java
  • SherlockActivity也可以用依赖注入的方法:

    场景:

        一个Activity必须继承RoboActivity才可以使用依赖注入。

    若一个Activity已经继承了别的Activity了。比如SherlockActivity 如何才能使用依赖注入呢?
    Roboguice提供了以下方法:
     
    public class LabaRoboActivity extends SherlockActivity implements RoboContext {
    
      protected EventManager eventManager;
      protected HashMap<Key<?>, Object> scopedObjects = new HashMap<Key<?>, Object>();
    
      @Inject
      ContentViewListener ignored; // BUG find a better place to put this
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        final RoboInjector injector = RoboGuice.getInjector(this);
        eventManager = injector.getInstance(EventManager.class);
        injector.injectMembersWithoutViews(this);
        super.onCreate(savedInstanceState);
        eventManager.fire(new OnCreateEvent(this,savedInstanceState));
      }
    
      protected void onRestart() {
        super.onRestart();
        eventManager.fire(new OnRestartEvent(this));
      }
    
      @Override
      protected void onStart() {
        super.onStart();
        eventManager.fire(new OnStartEvent(this));
      }
    
      @Override
      protected void onResume() {
        super.onResume();
        eventManager.fire(new OnResumeEvent(this));
      }
    
      @Override
      protected void onPause() {
        super.onPause();
        eventManager.fire(new OnPauseEvent(this));
      }
    
      @Override
      protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        eventManager.fire(new OnNewIntentEvent(this));
      }
    
      @Override
      protected void onStop() {
        try {
          eventManager.fire(new OnStopEvent(this));
        } finally {
          super.onStop();
        }
      }
    
      @Override
      protected void onDestroy() {
        try {
          eventManager.fire(new OnDestroyEvent(this));
        } finally {
          try {
            RoboGuice.destroyInjector(this);
          } finally {
            super.onDestroy();
          }
        }
      }
    
      @Override
      public void onConfigurationChanged(Configuration newConfig) {
        final Configuration currentConfig = getResources().getConfiguration();
        super.onConfigurationChanged(newConfig);
        eventManager.fire(new OnConfigurationChangedEvent(this,currentConfig, newConfig));
      }
    
      @Override
      public void onContentChanged() {
        super.onContentChanged();
        RoboGuice.getInjector(this).injectViewMembers(this);
        eventManager.fire(new OnContentChangedEvent(this));
      }
    
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        eventManager.fire(new OnActivityResultEvent(this,requestCode,resultCode,data));
      }
    
      @Override
      public Map<Key<?>, Object> getScopedObjectMap() {
        return scopedObjects;
      }
    }
    

      

     





    附件列表

  • 相关阅读:
    10 种保护 Spring Boot 应用的绝佳方法
    Redis 如何分析慢查询操作?
    Spring Boot 主类及目录结构介绍
    Redis 再牛逼,也得设置密码!!
    Spring Data Redis 详解及实战一文搞定
    Spring Boot Redis Cluster 实战干货
    超详细的 Redis Cluster 官方集群搭建指南
    Redis Linux 安装运行实战全记录
    hdu 4790 Just Random (思路+分类计算+数学)
    poj 1328 Radar Installation(贪心)
  • 原文地址:https://www.cnblogs.com/lixiaodaoaaa/p/5175172.html
Copyright © 2011-2022 走看看