我对Android服务类仍然有点新鲜。我知道你需要用startService(intent)从你的应用程序启动服务,但是我的问题是我的服务里面有方法。我需要以意图启动服务,然后在我的Activity中创建该类的对象,以便可以调用该服务的方法。问题是,当我这样做时,我创建了一个服务实例,当我在一个intent和另一个服务实例中启动服务时,在我的活动中创建了一个类的对象。这意味着当我创建服务的对象时,从startService(intent)传递给服务的任何数据都不存在。任何解决这个问题的方法还是我完全滥用服务类?我可以给一些代码,但其基本上是这样的:Android服务多个实例
//Create Object of ControlPanel service class.
ControlPanel cPanel = new ControlPanel();
//Create intent for starting ControlPanel service class
Intent controlPanel = new Intent(this, cPanel.getClass());
//Start Service
startService(controlPanel);
我会看看bindService()。我之前简要地阅读了它,但从来没有用过它。我不明白我能找到什么。你可以推荐任何好的教程页面? – 2013-04-10 16:56:06
@TravisElliott:“你可以推荐任何好的教程页面?” - 我确信有一些,但我不知道我的头顶有什么。我最简单的示例是https://github.com/commonsguy/cw-omnibus/tree/master/AdvServices/Binding,但它来自我的书的高级篇章,因此假设了其他内容(如片段)的使用经验。 – CommonsWare 2013-04-10 17:01:03
这样做的关键是我需要服务在我调用它的方法时执行工作,然后通过信使发送信息到主要活动。该服务有一个可运行的线程,在后台线程上执行工作(通过tcp套接字发送数据)。任何想法在更好的方式来做到这一点。我真的不想使用Intent服务,因为另一个线程也需要保持运行以接收数据。 – 2013-04-10 17:21:07