使对象侦听Activity生命周期事件?

tit*_*nus 8 android activity-lifecycle

我写的一个类需要在发生以下Activity事件时做出反应:

  • 在onStart()
  • 的onPause()
  • 的onResume()
  • 的onStop()

我可以对活动本身的那些做出反应:

public class Activity extends ApplicationContext
{
    protected void onCreate(Bundle savedInstanceState);

    protected void onStart();

    protected void onRestart();

    protected void onResume();

    protected void onPause();

    protected void onStop();

    protected void onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

Activity我可以告诉相关的对象已经发生了某个事件,但我不喜欢这个想法:它需要开发人员在我之外实现逻辑object/class.理想情况下,我希望该对象负责注册这些事件,并将自己设置为一个监听器,独立于Activity.

有任何想法吗?提前致谢.

kaa*_*aay 7

API级别14具有Application.ActivityLifecycleCallbacks.
在那之前,afaik,对不起,没有.
如果您希望将您的课程提供给其他人,您将需要提供扩展最常见活动的抽象类,或者让他们将某些调用放在他们自己的Activity的生命周期方法中,例如

protected void onPause() {
  super.onPause();
  yourClassInstance.onPause();
}

也可以使它更通用,并创建接受NotifyingActivity.LifecycleListener的抽象NotifyingActivity类,并使您的类实现这样的侦听器并在其构造函数中注册自己.