不知道你是否仍在寻找一种方法来做到这一点,但我发现(偶然)你可以启动一个shakeListener,并且你的应用程序即使在后台也会得到这些事件。我的意思是我不希望我的应用程序播放应用程序在后台播放的声音,但即使在后台有另一个应用程序,然后甚至把睡觉的时候我会在我的口袋里的手机走手机,这已经足够了晃动造成应用程序在后台执行该操作。)
/**
* load and set up the listener for shake detection
*/
private void loadShaker() {
mShaker = new ShakeListener(this);
mShaker.setOnShakeListener(new ShakeListener.OnShakeListener() {
public void onShake() {
if (!mActivityPaused)
performMyOperationCausedByShake();
}
});
}
你也许可以这样设置这使该performMyOperationCausedByShake()
执行意图,导致您想要的活动发生。
(这也许是因为这是不太你在找什么......很敏感的情况下)
你可能会引发约1个第二传感器通过AlarmManager定期检查但缺少风险事件。 – zapl
这是个好主意。但正如你所说,如果它错过了这个事件,那么在我的服务被唤醒前2-3秒钟。醒来后,它必须做一些快速的事情,所以任何延迟都会花费我... – Radu