我正在开发一个基本上是一个小部件和一个服务的应用程序。 小部件只是一个按钮,我希望它在设备的后台运行服务。 因此,用户只需单击按钮,UI中就不会发生任何事情,服务将在后台启动。 但是我希望我使用IntentService实现的后台服务总是在单击小部件按钮后在后台监听我的设备的抖动。它必须随时监控加速计传感器的任何变化。 最后,如果用户摇动他的设备,我想打开某个应用程序。
我已经实现了widget部分,我单击按钮并运行服务。我也实现了摇动部分,我可以摇晃并在摇动后做一些事情。我也知道如何在震动后打开另一个应用程序。我只是不能通过服务做到这一点!所以我的问题是:
我已经回顾了这个问题:["Shake" app to respond at any time]但我没有详细了解该服务如何在后台收听。
有人可以帮忙吗?
答案 0 :(得分:3)
您可以同时使用Service
和IntentService
。在这里,我给出了一个适合你的方法。对于Service
和IntentService
之间的差异,请点击this链接。
public class service extends Service implements SensorEventListener {
@Override
public void onCreate() {
super.onCreate();
//register your sensor manager listener here
}
@Override
public void onDestroy() {
//unregister your listener here
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
//detect the shake and do your work here
}
}