0

我想开发一个Android应用程序,它包含一个Activity和一个Service。该活动启动一个无限期服务流程,该服务将从活动中关闭。不要使用子类IntentService,而是直接使用Service。由onStartCommand和OnDestroy控制。活动,服务和之间有什么样的沟通?

我显然需要将信息从活动传递到服务:服务的状态和一些字符串。

我试图使用LocalBrodcastManager,但是当打开设备或活动进入onPause状态时,消息将会丢失。我试图遵循几个例子,但收效甚微。这尤其是我无法完成它,因为缺少一些信息,显然被视为明显,但并不明显对我说:https://developer.android.com/training/run-background-service/report-status.html

我又试图通过的IBinder(Example: Communication between Activity and Service using Messaging)使用Messenger的,但该计划似乎有点复杂我无法满足我的需求。

我需要的是从我的活动中启动服务(如果使用Messenger,可能会自动绑定服务),服务应该指示活动处于活动状态,然后服务通过GPS LocationListener记录一些点,写入它到一个文件中,应该指出的是,再次活动,即录音,文件大小数据等

你有什么建议使用通过这个信息,你可以提供给我一些例子吗?

+0

您可以配置您的应用程序,以便显示方向更改不会终止并重新启动活动。这可能是解决问题的最简单方法。 –

+0

有趣,但我必须使用?我想这是不可能的,这是强制使用savedInstanceState ... – Paolovip

+0

在清单只是声明,你的'Activity'将处理方向变化本身。重写'onConfigurationChanged()',当调用它时你可以重置内容视图和/或改变你的布局。 –

回答

1

我实际上是在一个教程中解释和比较IPC的许多不同的方法,但由于它还没有准备好,并且因为你需要一个简单的修复,我会推荐https://github.com/greenrobot/EventBus

,也欢迎在一个古老的,但仍然相关的例子我和我的朋友们回到这里发了一阵看:https://github.com/RanNachmany/AndconLab

古德勒克。

+0

非常感谢。你的代码非常清晰,编写得很好,但是对于我的实际功能来说,它的代码太高级了。目前我只认识到整个过程的一半。我只能绑定到我的Activity中的服务,启动ServiceConnection并向服务中收到消息。我想现在我必须在客户端实现一个Messenger。但目前我必须研究Handler的真正工作方式。 :-) – Paolovip

+0

@Paolovip你能接受我的回答吗? –

+0

我会,但我不知道如何。它是如何完成的? (我很惭愧有点...) – Paolovip