如何获得有关活动生命周期的通知

时间:2013-07-22 10:57:16

标签: android android-activity

我正在为我的活动编写一个帮助程序类,它使用外部服务。就像关于绑定服务的标准设计模式一样,我希望绑定活动创建并解除活动破坏。但是,我希望将此逻辑与我的帮助程序类隔离,以便该活动只使用该帮助程序的实例,并且不会显式调用bind和unbind。

我可以将活动传递给帮助器类,但我找不到任何方法来调度活动生命周期事件的回调 - 在Activity类中没有这样的方法。虽然这很可能意味着我无法达到我想要的目标,而且这可能不是一个好主意,但我仍然想向社区询问这一点。可能吗?这是个好主意吗?是否有可能与其他一些类(不是活动)达到类似的结果?

我是Android开发的新手,我正在寻求最佳实践。任何想法都表示赞赏。

谢谢!

编辑:基本上,我希望收到有关活动创建和销毁的通知。我希望能够在onCreateonDestroy方法上安排回调,但需要从活动外部安排回调。这些方法受到保护,因此无法从其他类中访问。

2 个答案:

答案 0 :(得分:4)

您可以使用Application.ActivityLifecycleCallbacks课程。请记住,该类是在API级别14中引入的。对于较低版本,您可以在库中创建钩子方法,并要求目标Activity从相应的生命周期方法中调用相应的钩子方法。当然,这将是一个非常脆弱的实施。

答案 1 :(得分:0)

生命周期方法是实现行为的手段,当DalvikVM决定对Activity执行某些操作(暂停/恢复/创建/销毁)时,将执行该行为,而不是人为地调用该行为。

如果要在某种辅助/控制器中外部化逻辑并且能够使用服务连接,请在ServiceConnection处理程序中进行初始化。

private ServiceConnection mConnection = new ServiceConnection() {

    @Override
    public void onServiceConnected(ComponentName className,IBinder service) {
        ...init helper here...
    }

    @Override
    public void onServiceDisconnected(ComponentName arg0) {
        ...shutdown helper here...
    }
};

然后像往常一样处理连接。