Java 从活动到服务的本地服务绑定代码

Java 从活动到服务的本地服务绑定代码,java,android,service,android-context,oncreate,Java,Android,Service,Android Context,Oncreate,用于绑定到服务的客户端代码,通常位于活动类中;我正在尝试将其移动到服务类,以便活动类尽可能干净和小 i、 基本上是试图合并 用于绑定到服务的单行活动 静态bindService和ServiceConnection已移动到服务 但从未调用onServiceConnected? 日志显示了以下各项: ... Bound 但不在服务连接启动或之后 没有例外。 请注意,当相同的代码出现在活动中时,使用MyActivity.this调用时,它会工作 我做错了什么?这是不是 AService.bindSe

用于绑定到服务的客户端代码,通常位于活动类中;我正在尝试将其移动到服务类,以便活动类尽可能干净和小

i、 基本上是试图合并

用于绑定到服务的单行活动 静态bindService和ServiceConnection已移动到服务 但从未调用onServiceConnected? 日志显示了以下各项:

...
Bound
但不在服务连接启动或之后 没有例外。 请注意,当相同的代码出现在活动中时,使用MyActivity.this调用时,它会工作 我做错了什么?

这是不是

AService.bindService(this);
比这好多了

bindService(new Intent(context, AService.class),
                serviceConnection, Context.BIND_AUTO_CREATE);
ServiceConnection实现是否真的让您如此恼火?我对此表示怀疑

我不认为有任何一点可以将所有内容集中到服务中,然后在实际服务中调用静态方法来从活动启动此服务。最好的做法是按照谷歌推荐的标准方式做事,如果你在团队中工作,用你的方式做事,你会让你的代码变得模糊,让其他人在阅读你的代码时感到困惑。这在我看来毫无意义

不要把所有的精力从活动中孤立出来,而是更多地考虑如何将业务逻辑与活动隔离开来,并将它们集中到服务中,让活动主要集中在UI上。
真的希望这能对您有所帮助。

我的移动/代码开始工作,结果出现了一些奇怪的刷新问题,或者我真的不知道是什么,比如当我手动卸载应用程序并杀死adb,然后重新安装时,绑定开始起作用了。就让人困惑而言,我认为遵循谷歌推荐的方式实际上会导致更多的困惑,尤其是因为我在一个Android库中提供服务,而该库的用户可能对服务等知之甚少。我应该让他们尽可能简单地访问他们感兴趣的库功能,而不是使用库所需的额外样板代码。尽管我基本上不同意你的观点,但我会接受你的回答,因为你是唯一一个试图解决这个问题的人。谢谢@凯尔,很高兴看到你自己明白了,尽管我保留我的观点。
AService.bindService(this);
bindService(new Intent(context, AService.class),
                serviceConnection, Context.BIND_AUTO_CREATE);