【发布时间】:2013-11-30 04:02:47
【问题描述】:
有几种方法可以将 Service 连接到 Activity。我只对本地服务感兴趣,我的LocalService 将站在那里直到用户停止它(这也意味着应用程序结束)。我可能知道有问题,如果有,请纠正我。
reference page上写着要直接使用本地服务的方法,应该使用ServiceConnection。绑定后,我们就可以有一个LocalService类的引用,我们可以直接使用这个LocalService的方法。 AFAIK 我们使用此引用调用的方法在具有相关 Activity 的主线程上运行。
让我感到困惑的是,如果我使用骨架结构并直接通过其静态引用(即通过LocalService.getInstance())访问LocalService 的方法会怎样。嗯,我已经用过,没有遇到任何问题,但我仍然不确定哪个更好,为什么。
提前致谢。如果需要,我可能会添加其他信息。
编辑:
在我之前提到的解决方案中,没有任何活动保留对LocalService 的引用。
习惯了
- 启动一些
LongRunningAsyncTasks(在服务停止之前全部停止并且引用无效), - 更新应用
Notification, - 获取
getFilesDir(), - 保留枚举值(其引用未保存在其他地方,仅用于比较)以便从任何地方访问(不值得使用 SharedPreferences)。
- 展示一些祝酒词
【问题讨论】:
标签: android android-service serviceconnection