【问题标题】:onserviceconnected never called: androidonserviceconnected 从未调用过:android
【发布时间】:2012-07-23 11:50:22
【问题描述】:

如何自行启动服务?? 我不想从另一个活动启动服务。但我想将服务绑定到活动.. 我的问题与此链接中的描述完全相同。 onServiceConnected never called after bindService method 即我的 onserviceconnected 永远不会被调用。

Messenger mService = null;
public void onServiceConnected(ComponentName className, IBinder service) {
            mService = new Messenger(service);
            Log.d("IMSLogging", "inside onServiceConnected");
        }

从我的活动的 oncreate 中,我正在调用 bindService.但是当我在执行 mService.send(msg); 时我得到一个空指针异常;来自 oncreate。(当然是在调用 bindService 之后。)虽然 bindService 返回 true。,

【问题讨论】:

  • 我相信我已经发布了代码。问题是即使在我从 oncreate 方法调用 bindservice 之后,mService 仍然为空。我在代码中提到的 log.d 也从未在日志中找到..

标签: android android-activity android-service


【解决方案1】:

之后收到onServiceConnected() 回调之前,您不能调用mService.send()。这意味着您不能在onCreate() 中同时使用bindService()mService.send()。您需要将mService.send() 调用移至onResume()onServiceConnected() 或其他位置。

【讨论】:

  • 即使我也这么想。但是所有这些都发生在单击按钮时。以及 setonClickListener 和 onCreate 等等。它们仅在 onCreate 中定义。然后我会改变一切吗???
  • 您可以发布您的代码,我可以为您提供更多帮助。但是,您应该可以在 onCreate() 中设置您的 UI,只是在 onServiceConnected() 回调返回之前,您无法使用该服务。
  • 嘿,谢谢,我解决了。实际上我在 onclick 监听器中调用了 onBind。谢谢。 :)
  • @scooby:在 onclick 监听器中调用 onBind 有什么问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多