gpt4 book ai didi

android - 通过 Intent 启动 Android 服务与通过实例创建

转载 作者:行者123 更新时间:2023-11-29 02:07:51 27 4
gpt4 key购买 nike

据我了解,Android 服务应该是单例的——一次最多运行一个类实例。所以你应该通过 Intent 启动它们,而不是

MyService mse = new MyService();

但是,在 Google 的应用内结算示例中,这正是他们在 Dungeons.java 第 235 行中所做的。因此这显然是合法的。

我想知道,如果我启动这样的服务,框架稍后会识别它正在运行吗?换句话说,如果我稍后尝试在同一个服务上调用 startService(),框架会识别出该服务的一个实例已经存在并向它分派(dispatch) startService() 调用吗?

最佳答案

我不知道你指的是什么例子。但是您绝对不能自己使用 Activity 实例化 Android 组件( BroadcastReceiverServiceProvidernew )关键词。这些组件只能由 Android 框架实例化,因为框架需要设置 Context组件的。

(不幸的是)没有什么能阻止你写 Service s = new MyService(); ,但这对你没有好处。 Android 永远不会在此 Service 上调用任何生命周期方法以及您对 Service 的方法所做的任何调用可能会失败,因为实例没有 Context .

关于android - 通过 Intent 启动 Android 服务与通过实例创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9021664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com