【发布时间】:2010-09-03 15:27:15
【问题描述】:
我很确定 android 服务将是我的终结。最近几天我几乎没有头发了....
...无论如何,我离题了。
起初,我很想通过单击按钮来绑定服务,昨天从这里的帮助中解决了这个问题。现在我实际上希望服务绑定在活动的 onCreate() 方法中。那部分没问题,按预期工作。我的服务实际上是一个套接字服务,用于将 TCP 套接字连接到我编写的套接字服务器。如果我将绑定服务 mBoundService.StartSocketServer() 中的方法调用放在按钮单击中,宾果游戏效果很好。但是我需要在活动加载时立即启动它,因此直接在活动的 onCreate() 方法中的 bindService() 调用下。当我在 onCreate() 中调用启动套接字时,我会强制关闭。
此方法 (StartSocketServer()) 生成一个新线程,然后打开该线程上的套接字到我的远程计算机。我猜问题出在活动完全加载之前的新线程生成...不确定。
LogCat 在这里相当神秘。它确实说明了线程附加失败,然后显示了一个未捕获的处理程序异常,其中包含“Caused by: java.lang.NullPointerException”。
再次,如果我在按钮单击中将此方法调用,我在做生意,如果它在 onCreate() 中失败。在活动中是否有某种方式(假设我的假设是正确的需要在生成新线程之前完全加载)在加载后调用 StartSocketServer():ala body.onLoad() in html?
请帮我保存我剩下的头发:)
TIA
【问题讨论】: