用于后台录制的Android服务

问题描述 投票:0回答:3

我需要在android上实现录制服务。我一直投入大量时间阅读有关服务的内容,在android中处理背景,但是我仍然没有弄清楚。这是我到目前为止所做的:

  1. 我首先实现了在onCreate上创建并维护AudioRecord实例的服务
  2. i继承了Application并从应用程序的onCreate启动了服务
  3. i在onResume上从MainActivity绑定到该服务,并在onPause上取消绑定
  4. 该服务的onBind的工作方式类似于Android SDK示例中的LocalService示例,这意味着我返回了包含该服务实例并为其具有吸气剂的活页夹
  5. 服务API允许其客户端启动和暂停其维护的AudioRecord

现在我期望的是,服务的onCreate在应用程序启动时仅被调用一次,但是令人惊讶的是,似乎有时当我绑定到该服务时,服务会重新启动(调用了onCreate和onStartCommand !!)>

此行为对我来说非常糟糕,因为当用户从MainActivity启动记录时(使用服务实例API),然后按Home键,然后再次返回我的应用程序,该服务的onCreate被再次调用,并且AudioRecorder被重新创建!

我想念什么?

我需要在android上实现录制服务。我一直投入大量时间阅读有关服务的内容,在android中处理背景,但是我仍然没有弄清楚。这是...

android service
3个回答
0
投票

您根本不需要呼叫startService。必要时,bindService将创建Service。这两种方法适用于两种不同的用例。


0
投票

正确的答案是here


0
投票

如果您要创建像Background Video Recorder这样的录制应用程序,则>

然后,您需要使用IntentService而不是Service,因为IntentService在后台线程中运行。

© www.soinside.com 2019 - 2024. All rights reserved.