我有一个被定义为:
public class SleepAccelerometerService extends Service implements SensorEventListener
我正在开发一个应用程序,可以在用户睡觉时使用手机/设备监测加速度活动,出于各种原因。这是一项长期运行的服务,在夜间绝不能被关闭。由于在夜间会发生许多后台应用程序和定期进程,因此安卓有时会关闭我的进程,从而结束我的服务。例如:
10-04 03:27:41.673: INFO/ActivityManager(1269): Process com.androsz.electricsleep (pid 16223) has died.
10-04 03:27:41.681: INFO/WindowManager(1269): WIN DEATH: Window{45509f98 com.androsz.electricsleep/com.androsz.electricsleep.ui.SleepActivity paused=false}
我不想强制用户在我的应用中使用“SleepActivity”或其他活动作为前台。 我不能让我的服务定期运行,因为它会不断拦截onSensorChanged。
有什么提示吗?源代码在这里:http://code.google.com/p/electricsleep/
startForeground()
。因此,用户必须通过通知可见该情况。startForeground()
并不意味着应该替代适当响应生命周期事件的方法。 - David Webb