2012-03-26 5 views
1

デバイスを100%起動するための良い方法はありますか?私はacquire()を繰り返し呼び出しますが、それが正しいかどうかはわかりません。または、私はacquire()を一度呼び出す必要がありますか?または、Intent.ACTION_SCREEN_OFFを使用する必要がありますか?私のデバイスを100%有効にする方法はありますか?

public class MyServiceThatKeepsTheDeviceAwake extends IntentService { 
TAG = "com.android.browser.test.launcher.BrowsePageService"; 
... 
@Override 
public void onCreate() { 
    super.onCreate(); 
    mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
    mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE, TAG); 
} 

@Override 
public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 
    mWakeLock.acquire(); 
} 

// No release 

*このサービスは--- AlarmManagerごとに20秒

を使用して実行して追加されます。

*これは私のFFを与えます。繰り返し実行すると出力されます。これに何か問題がありますか?何か問題が繰り返しそれを呼び出す必要がありますか?

C:\Windows\System32>adb shell dumpsys power 
Power Manager State: 
mIsPowered=false mPowerState=3 mScreenOffTime=463571 ms 
mPartialCount=9 
mWakeLockState=SCREEN_BRIGHT_BIT SCREEN_ON_BIT 
mUserState= 
mPowerState=SCREEN_BRIGHT_BIT SCREEN_ON_BIT 
mLocks.gather=SCREEN_BRIGHT_BIT SCREEN_ON_BIT 
mNextTimeout=355968 now=463589 -107s from now 
mDimScreen=true mStayOnConditions=0 
mScreenOffReason=0 mUserState=0 
mBroadcastQueue={-1,-1,-1} 
mBroadcastWhy={0,0,0} 
mPokey=0 mPokeAwakeonSet=false 
mKeyboardVisible=false mUserActivityAllowed=true 
mKeylightDelay=6000 mDimDelay=2000 mScreenOffDelay=7000 
mPreventScreenOn=false mScreenBrightnessOverride=-1 mButtonBrightnessOverride=-1 
mScreenOffTimeoutSetting=15000 mMaximumScreenOffTimeout=2147483647 
mLastScreenOnTime=19531 
mBroadcastWakeLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false) 
mStayOnWhilePluggedInScreenDimLock=UnsynchronizedWakeLock(mFlags=0x6 mCount=0 mHeld=false) 
mStayOnWhilePluggedInPartialLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false) 
mPreventScreenOnPartialLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false) 
mProximityPartialLock=UnsynchronizedWakeLock(mFlags=0x1 mCount=0 mHeld=false) 
mProximityWakeLockCount=0 
mProximitySensorEnabled=false 
mProximitySensorActive=false 
mProximityPendingValue=-1 
mLastProximityEventTime=0 
mLightSensorEnabled=true 
mLightSensorValue=1219.0 mLightSensorPendingValue=1173.0 
mLightSensorPendingDecrease=true mLightSensorPendingIncrease=false 
mLightSensorScreenBrightness=122 mLightSensorButtonBrightness=0 mLightSensorKeyboardBrightness=0 
mUseSoftwareAutoBrightness=true 
mAutoBrightessEnabled=true 
mScreenBrightness: animating=false targetValue=122 curValue=122.0 delta=0.45 

mLocks.size=16: 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
FULL_WAKE_LOCK     'com.android.browser.test.launcher.BrowsePageService'ACQUIRE_CAUSES_WAKEUP activated (minState=3, uid=10040, pid=722) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase.lastChance' activated (minState=0, uid=10007, pid=243) 
PARTIAL_WAKE_LOCK    'WSBase' activated (minState=0, uid=10007, pid=243) 

mPokeLocks.size=0: 
+0

でより詳細な一見のための

ベストオプションでは、設定から値を持つスリープタイムアウトにそれを「絶対」に設定されていません。すべてのデバイスに対して手動で行う必要があります – Krish

+0

Motorola xoomには「Never」オプションがないか、すべてのデバイスにそのオプションがありません。それをどうすればいいと思いますか? – quiel

+0

次に、その値を1時間以上のような最大時間に設定する必要があります。 – Krish

答えて

1

リリースを(呼び出すことはありませんまでlock.Itが動作する取得)(のonCreateでacquire() repeatedly.Justを呼び出すする必要はありません)。ただ、活動の呼解放のonDestroy()()、で、それはバッテリーを消費したよう仕事。このDetail Discussion on Wake up of Screen

+0

あなたはAlarmManagerを起動するアクティビティのonCreateでacquire()を呼び出す必要がありますか?その場合、アクティビティがシステムによって破壊された場合はどうなるでしょうか? wakelockもリリースされますか? – quiel

+1

もしそれがフォアグラウンドでシステムより破壊されることはありません。バックグラウンドでもその活動は破壊されます。しかし、そうなら、そのメソッドのondestroyed()はあなたにrelease()ロックを呼び出します – Sameer

+0

@quiel:ポイント? – Sameer

関連する問題