在Android中,申请WakeLock可以让你的进程持续执行即使手机进入睡眠模式,比较实用的是比如后台有网络功能,可以保证操作持续进行.

方法: 在操作之前加入

PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG);
wakeLock.acquire();

别忘了在操作完毕之后释放掉

if (wakeLock != null) {
wakeLock.release();
wakeLock = null;
}


试了下,找不到Constants类,Constants.TAG应该是一个String值,因填写Service名
我在Activity启动Service前 以及 在Service onCreate() 两处 分别尝试插入这段代码,并测试。
模拟器似乎是无法模拟待机/睡眠状态的,故无法测试。
在真机上测试 (测试方法为,不断通过wifi发送请求到局域网的PC的tomcat上,tomcat输出请求时间和ip)
联想乐phone(Android 1.6)均无法持续运行,表现为,屏幕一黑(进入待机)就停止请求,按任意键解锁后又继续请求。
我的milestone(Android2.0) 在Activity启动Service前插入 可以持续运行。
但是在使用gprs网络时似乎仍有问题,有待进一步测试

Android提供了现成android.os.PowerManager类,该类用于控制设备的电源状态的切换. 该类对外有三个接口函数: void goToSleep(long time); //强制设备进入Sleep状态 Note: 尝试在应用层调用该函数,却不能成功,出现的错误好象是权限不够, 但在Framework下面的Service里调用是可以的. newWakeLock(int flags, String tag);//取得相应层次的锁 flags参数说明: PARTIAL_WAKE_LOCK: Screen off, keyboard light off SCREEN_DIM_WAKE_LOCK: screen dim, keyboard light off SCREEN_BRIGHT_WAKE_LOCK: screen bright, keyboard light off FULL_WAKE_LOCK: screen bright, keyboard bright ACQUIRE_CAUSES_WAKEUP: 一旦有请求锁时强制打开Screen和keyboard light ON_AFTER_RELEASE: 在释放锁时reset activity timer Note: 如果申请了partial wakelock,那么即使按Power键,系统也不会进Sleep,如Music播放时 如果申请了其它的wakelocks,按Power键,系统还是会进Sleep void userActivity(long when, boolean noChangeLights);//User activity事件发生,设备会被切换到Full on的状态,同时Reset Screen off timer. Sample code: PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock (PowerManager.SCREEN_DIM_WAKE_LOCK, “My Tag”); wl.acquire(); ……. wl.release(); Note: 1. 在使用以上函数的应用程序中,必须在其Manifest.xml文件中加入下面的权限: <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DEVICE_POWER" /> 2. 所有的锁必须成对的使用,如果申请了而没有及时释放会造成系统故障.如申请了partial wakelock,而没有及时释放,那系统就永远进不了Sleep模式.
2010-08-18 09:26:31 发表于我的新浪博客

更多相关文章

  1. 裁判文书App(2020最新版) 逆向过程分析
  2. android SQLite数据库的增删改查以及事务的单元测试
  3. Android单元测试 Only the original thread that created a view
  4. Intent的用法(初步)
  5. 【Android(安卓)Studio】android 自测工具monkey的使用
  6. Android(安卓)MVC模式
  7. android studio 连接真机测试 小米8
  8. Android(安卓)WebView 中的 Html 网页定位操作
  9. Android(安卓)Binder入门指南之getService详解之请求的反馈

随机推荐

  1. Android权限问题
  2. Android屏幕元素层次结构
  3. Android(安卓)NDK开发基础篇(二)
  4. S3C6410(M8用的) 移植Android(安卓)内核
  5. Android性能调优
  6. Android判断当前应用程序处于前台还是后
  7. Android—— ubuntu下【CTS】测试TV真机
  8. Android的Menu
  9. Android的两种数据存储方式分析(一)
  10. 更新Activity的几个方法