Android-后台运行的服务

Android-后台运行的服务,android,service,background,Android,Service,Background,我对Android编程很陌生,我想知道在屏幕关闭时保持信息更新的最佳方法是什么 具体情况如下: -我使用一个扩展服务并实现SensorEventListener的服务。 -我使用加速计检查用户是坐着还是站着(onSensorChanged)。 -如果用户已经坐了指定的时间,设备会振动并发出嘟嘟声 问题是: -该服务的更新频率不足以使警报按i时间发出。有时会延迟几分钟,有时会在打开设备屏幕时更新。 -更新频率似乎因设备而异 我的问题是: -解决这个问题的最佳方法是什么?也许服务不是最好的解决方案

我对Android编程很陌生,我想知道在屏幕关闭时保持信息更新的最佳方法是什么

具体情况如下: -我使用一个扩展服务并实现SensorEventListener的服务。 -我使用加速计检查用户是坐着还是站着(onSensorChanged)。 -如果用户已经坐了指定的时间,设备会振动并发出嘟嘟声

问题是: -该服务的更新频率不足以使警报按i时间发出。有时会延迟几分钟,有时会在打开设备屏幕时更新。 -更新频率似乎因设备而异

我的问题是: -解决这个问题的最佳方法是什么?也许服务不是最好的解决方案

我的目的是让服务在后台长时间运行

此外,我不想使用唤醒锁,因为电池(这是一个重要的因素在这种情况下)


//维克托

我在一篇文章中提到了这个问题。我和你一样面对这个问题。我刚刚找到了一个我写的解决方法,但它并不适用于所有设备。该设备的传感器策略取决于制造商,制造商限制廉价手机上的传感器。(我不知道为什么,但我猜是关于电池的使用)


如果你想使用传感器,你应该使用wakelock。(如果有不使用wakelocks的解决方案,我想试试)

我想你可以通过实现广播接收器来感知加速计的变化。相同的广播接收器必须调用您的服务,并执行它需要执行的任何操作。但我不确定它是否能把你的手机从睡眠中唤醒!谢谢你的回复。我通过onSensorChange事件获取数据没有问题。事实上,数据不会传播到服务之外的任何地方,因此我不需要广播公司。在服务中调用设备振动。可能该服务正在运行,但如果设备处于“屏幕”状态,则无法调用振动和声音警报?我想说的是,我没有尝试过,但如果它可以运行您的应用程序。会有用的。还有,自从你的应用程序。在待机模式下收听传感器时,电池肯定会耗尽。很好的链接。我一定会尝试在博客中提供的解决方案,看看它是否有效。如果是使用传感器的话,我可以忍受电池的放电。和以前很多次一样,Android中的解决方案从来都不是现成的。让我担心的是,它可能无法在某些设备上工作。我的意思是,从来没有一个对所有设备的全面覆盖,但这一个似乎有点假设。我已经从博客中实现了解决方案,它至少在我的设备(HTC desire S)上起作用。根据博客的说法,它在“很多手机”上工作,我想知道这可能意味着什么。我将在两个不同的设备上试用它,看看它的实现是否正常。