Android应用生命周期引擎库

时间:2015-06-10 20:35:00

标签: android lifecycle

对于一个项目,我需要类似通用的灵活生命周期引擎。我的意思是,我应该能够用它注册许多组件。应该在不同的应用/活动生命周期事件上触发组件。

例如:

  • 组件A对onStart(),onStop()和onDestroy()
  • 作出反应
  • 组件B. 对onStart()和onPause()
  • 作出反应

此外,组件应该能够对其他组件/事件做出反应。

例如:

  • 组件C在组件A和B完成特定任务时被触发

在我开始自己写东西之前,我想检查是否已经有一个可以做这些事情的图书馆。

1 个答案:

答案 0 :(得分:0)

您可以创建扩展Android Application类的自定义Application类。接下来,您可以创建并注册ActivityLifecycleCallbacks。之后,您可以在回调中实现逻辑。

public class MyApplication extends Application {

   @Override
   public void onCreate () {
      super.onCreate();
      registerActivityLifecycleCallbacks(new MyActivityLifecycleCallbacks());
   }

   private static final class MyActivityLifecycleCallbacks implements ActivityLifecycleCallbacks {

      public void onActivityCreated(Activity activity, Bundle bundle) {
         Log.e("","onActivityCreated:" + activity.getLocalClassName());
      }

      public void onActivityDestroyed(Activity activity) {
         Log.e("","onActivityDestroyed:" + activity.getLocalClassName());
      }

      public void onActivityPaused(Activity activity) {
         Log.e("","onActivityPaused:" + activity.getLocalClassName());
      }

      public void onActivityResumed(Activity activity) {
         Log.e("","onActivityResumed:" + activity.getLocalClassName());
      }

      public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
         Log.e("","onActivitySaveInstanceState:" + activity.getLocalClassName());
      }

      public void onActivityStarted(Activity activity) {
         Log.e("","onActivityStarted:" + activity.getLocalClassName());
      }

      public void onActivityStopped(Activity activity) {
         Log.e("","onActivityStopped:" + activity.getLocalClassName());
      }
   }
}