ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2013年2月25日 星期一

delay suspend...wakelock

從這個 link : http://www.vogella.com/blog/2011/02/07/android-wakelock/

在 WakeLock.acquire( ) 時,可以傳入參數,告知 N ms 後自動 release。

利用這個,應該可以作到類似 A acquire, B release 的動作:
  • A acquire(5000) -- 5sec 自動 release
  • B 被 launch, acquire() -- 因為一定會在 5sec 內被 launch 起來,所以一定可以 acqure( )
  • B 做完所有動作:turn OFF a.b.c... release()
  • 以上動作在 5sec 以內:5sec 後 A 自動 release,關機
  • 以上動作在 5sec 以後,A 早已經 release,所以關機



code: framework/base/core/java/android/os/PowerManager.java: public void acquire() { synchronized (mToken) { if (!mRefCounted || mCount++ == 0) { try { mService.acquireWakeLock(mFlags, mToken, mTag, mWorkSource); } catch (RemoteException e) { } mHeld = true; } } } public void acquire(long timeout) { acquire(); mHandler.postDelayed(mReleaser, timeout); }

實際測試發現,這樣的作法,即使在 wakelock release 之前 startactivity ,好像也沒辦法確認 activity 會在 sleep 之前 開啟。

沒有留言:

標籤

網誌存檔