Android锁屏时会先调用onPause();解锁时调用onResume,读入保存的应用程序的资源。如果运行程序时已经锁屏,应用程序会先调用onCreate(),然后onResume(),再则onPause()。
取消锁屏:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>KeyguardManager mKeyGuardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);KeyguardLock mLock = mKeyGuardManager.newKeyguardLock("自己Activity名字");mLock.disableKeyguard();

也是相当的简单了,但基于Rexsee的API,可以通过一句话搞定。 1. 取消锁屏:window.setTimeout('rexseeKeyguard.disable();alert(\'自动解锁!\');',10000); alert('请按电源键关屏再开屏看到锁屏画面,10秒后自动解锁。') 2. 启动锁屏:rexseeKeyguard.reEnable();
如下是rexseeKeyguard.java源码:
/* * Copyright (C) 2011 The Rexsee Open Source Project * * Licensed under the Rexsee License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.rexsee.com/CN/legal/license.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */  package rexsee.core.alarm;   import rexsee.core.browser.JavascriptInterface;  import rexsee.core.browser.RexseeBrowser;  import android.app.KeyguardManager;  import android.app.KeyguardManager.KeyguardLock;  import android.content.Context;   public class RexseeKeyguard implements JavascriptInterface {          private static final String INTERFACE_NAME = "Keyguard";         @Override         public String getInterfaceName() {                 return mBrowser.application.resources.prefix + INTERFACE_NAME;         }         @Override         public JavascriptInterface getInheritInterface(RexseeBrowser childBrowser) {                 return this;         }         @Override         public JavascriptInterface getNewInterface(RexseeBrowser childBrowser) {                 return new RexseeKeyguard(childBrowser);         }          private final Context mContext;         private final RexseeBrowser mBrowser;         private KeyguardLock mKeyguardLock = null;          public RexseeKeyguard(RexseeBrowser browser) {                 mBrowser = browser;                 mContext = browser.getContext();         }         public RexseeKeyguard(Context context) {                 mBrowser = null;                 mContext = context;         }          //JavaScript Interface          public void enable() {                 /*                 try {                         DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);                         dpm.lockNow();                 } catch (Exception e) {                         mBrowser.exception(getInterfaceName(), e);                 }                 */         }         public void reEnable() {                 if (mKeyguardLock != null) {                         mKeyguardLock.reenableKeyguard();                         mKeyguardLock = null;                 }         }         public void disable() {                 KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);                 mKeyguardLock = keyguardManager.newKeyguardLock("");                 mKeyguardLock.disableKeyguard();         }   }

仅对Rexsee的源码和函数事件做了整理,相关的demo或源码解析可以在Rexsee社区了解,目前Rexsee已提供了近2000个扩展,覆盖Android原生功能超过90%,且全部开放: http://www.rexsee.com/

更多相关文章

  1. Android系统源码阅读(18):Android 应用的显示
  2. 如何下载并编译Android4.0内核源码goldfish(图文)
  3. Android应用程序组件Content Provider的共享数据更新通知机制分
  4. Android源码--开机启动流程学习
  5. android最新源码(4.4.2_r1版本以上)下载
  6. android源码导入
  7. androidの亮屏,灭屏,解锁广播使用
  8. Android 将自己的应用程序改成系统的应用程序
  9. 【Android开源项目分析】android轻量级开源缓存框架——ASimpleC

随机推荐

  1. ContentProvider数据共享
  2. Android 横屏不重启 Activity
  3. Android(安卓)Architecture Components
  4. Android中绘制圆角矩形图片及任意形状图
  5. Selector与Shape的基本用法
  6. RelativeLayout属性详解
  7. 【Android】Android 代码判断是否获取ROO
  8. Android Drawable在XML和JAVA的表示
  9. android环境搭建
  10. Android(安卓)对应用进行单元测试