我正在为我的活动编写一个帮助程序类,它使用外部服务。就像关于绑定服务的标准设计模式一样,我希望绑定活动创建并解除活动破坏。但是,我希望将此逻辑与我的帮助程序类隔离,以便该活动只使用该帮助程序的实例,并且不会显式调用bind和unbind。
我可以将活动传递给帮助器类,但我找不到任何方法来调度活动生命周期事件的回调 - 在Activity类中没有这样的方法。虽然这很可能意味着我无法达到我想要的目标,而且这可能不是一个好主意,但我仍然想向社区询问这一点。可能吗?这是个好主意吗?是否有可能与其他一些类(不是活动)达到类似的结果?
我是Android开发的新手,我正在寻求最佳实践。任何想法都表示赞赏。
谢谢!
编辑:基本上,我希望收到有关活动创建和销毁的通知。我希望能够在onCreate
和onDestroy
方法上安排回调,但需要从活动外部安排回调。这些方法受到保护,因此无法从其他类中访问。
答案 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...
}
};
然后像往常一样处理连接。