上一篇文章给大家介绍了Android 5.0新技术关于锁屏通知的内容的第一部分,通知Notification的相关研究,本篇会介绍关于Android内部锁屏相关的电源管理的相关内容,初次写博客,还处于呀呀学步阶段,请各位大神指正!
通知:
NotificationManager–获取通知栏
NotificationManager.Builder–通知栏构造器
Notification显示样式
Notification的Action调用PendingIntent机制
锁屏状态:
PowerManager–电源
PowerManager.WakeLock–唤醒
KeyguardManager–锁屏管理
KeyguardManager.disableKeyguard()–解锁屏幕
KeyguardManager.reenableKeyguard()–反解锁屏幕
Application是否在后台运行,How Restart?:
ActivityManager–AMS(Activity Manager Service)
ActivityManager.RunningAppProcessInfo–所有在运行Application
intent = getPackageManager().getLaunchIntentForPackage(getPackageName())
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
PowerManager可以对Android电源做管理,主要包括电源的开启
我们可以对设备的电源进行管理。对该类API的使用将影响到电池寿命。只有在必须使用WakeLocks的时候,才使用WakeLocks,且在不使用它的时候要及时释放(release).
PowerManager extends Object
java.lang.Object
↳ android.os.PowerManager
默认情况下,当用户对手机有一段时间没有操作后,手机的Keyboard(这里不仅仅指硬键盘,还包括其他的所有键,比如Menu)背光将消失,从Bright变为Off,如果再过段时间没操作,屏幕(Screen)将从高亮(Bright)变为暗淡(Dim),如果再过段时间没操作,屏幕(Screen)将又由暗淡(Dim)变为不显示(Off),如果再过段时间没操作,CPU将sleep,从on变为off.通过PowerManager类可以对上述过程进行管理,可以让设备到达上面的某种状态时,该状态将不再超时,将不再往下走,但是仍然可以跳到到更上级的某种状态(比如用户有活动,可以让手机回到最高状态)。
你可以通过
Context.getSystemService()
方法来得到PowerManager类的实例。你通常需要使用的是newWakeLock(),它将创建一个PowerManager.WakeLock实例。你可以通过该对象的方法来对电源进行管理。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
..screen will stay on during this section..
wl.release();
你可以如下的flag,来说明将进行怎样的电源管理。下面的flag都是互斥,你只有使用其中的一个。
Flag Value CPU Screen Keyboard
PARTIAL_WAKE_LOCK On* Off Off
SCREEN_DIM_WAKE_LOCK On Dim Off
SCREEN_BRIGHT_WAKE_LOCK On Bright Off
FULL_WAKE_LOCK On Bright Bright
如果你hold了一个partial wakelock,那么CPU将一直运行,甚至在用户按下电源按钮。 对于