3

我正在为我的活动编写一个辅助类,它使用外部服务。就像在关于绑定服务的标准设计模式中一样,我想绑定活动创建并取消绑定活动销毁。但是,我想将此逻辑隔离到我的助手类,以便该活动将仅使用该助手的实例,并且不会显式调用绑定和取消绑定。

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

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

谢谢!

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

4

2 回答 2

4

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

于 2013-07-25T06:42:18.087 回答
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...
    }
};

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

于 2013-07-22T12:15:39.033 回答