不知道你是否仍在尋找一種方法來做到這一點,但我發現(偶然)你可以啓動一個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