public class WakeLockManager extends BroadcastReceiver { private static WakeLock mWakeLock; private String LCLT; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Consts.WAKELOCK_INTENT)) { Log.v("wakelock", "GOT THE wakelock INTENT"); boolean on = intent.getExtras().getBoolean("on"); if (mWakeLock == null) { PowerManager pm = (PowerManager) context .getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Breeze WakeLock"); } if (on) { if (!mWakeLock.isHeld()) { mWakeLock.acquire(); Log.v("wakelock", "acquiring wakelock"); } } else { if (mWakeLock.isHeld()) { Log.v("wakelock", "releasing wakelock"); mWakeLock.release(); } mWakeLock = null; } } } }
look at the code above. Paste it into a separate class file and in your manifest define it for some kind of user intention ... now that this class will respond to user intentions ... just pass this intention and you can turn wakelock on or off throughout your application, since wakelock is static. For instance:
public void setWakeup(boolean status) { Intent wakelock_Intent = new Intent(CUSTOM_INTENT); wakelock_Intent.putExtra("on", status); this.sendBroadcast(wakelock_Intent); }
above would be defined in your alarm code so that it plans to call
source share