运行多个服务

我目前正在build立一些运动检测function到我的应用程序。 我还没有find一种方法来持续监测加速度计,而不必一直保持电话的清醒状态。 在试图克服这一点,我目前有一个服务实现SensorEventListener。 我可以每隔一段时间(使用报警pipe理器)启动该服务,从设备加速度计读取数据,确定设备是否正在移动,然后closures服务。 一般来说,这显示如下:

public class MyService extends Service implements SensorEventListener { @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); /* Register this SensorEventListener with Android sensor service */ return START_STICKY; } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy() { /* Unregister SensorEventListener */ } /* SensorEventListener Implementation ************************/ @Override public void onAccuracyChanged(Sensor sensor, int accuracy) {} /* Receives callback when sensor values change */ @Override public void onSensorChanged(SensorEvent event) { /* Determine if moving & then call stopSelf() to shut service down */ } } 

然而,我还有一个问题,那就是我的应用程序有另外一个调用时间不同的服务。 据我所知,这两个服务将在同一个线程中运行,这是不好的,因为他们可能会冲突。

我需要知道在同一应用程序中是否有安全的方式同时运行多个服务 。 我已经考虑使用IntentService而不是标准的Service类。 我知道这些实现自己的工作线程来处理调用。 问题在于我不知道如何从IntentService中实现SensorEventListener所需的asynchronouscallbacktypes。 换句话说,我不能保证onSensorChanged这样的方法会在IntentService完成工作并closures之前收到一个callback。

有关此问题的解决方法的任何build议,高度赞赏。

Related of "运行多个服务"

因为他们可能会冲突。

怎么样?

我需要知道在同一应用程序中是否有安全的方式同时运行多个服务

在同一个应用程序中同时使用多个服务没有内在的问题,而且在同一个应用程序中有多个活动也存在固有的问题。

有关此问题的解决方法的任何build议,高度赞赏。

你没有performance出问题。