在正常情况下,Android系统会让程序和服务进入休眠状态以节约电量使用。然而在开发Android程序时,有时候在程序运行的时候,不能让系统休眠,否则有一些运行会停止,因此我们需要设置禁止休眠。

Android中设置禁止休眠有两种方式:

1.

在View中设置FLAG_KEEP_SCREEN_ON。

实现上可以在代码中设置,也可以在XML文件中设置。

代码如下所示:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

或者配置文件对该View设置:

android:layout_height="fill_parent"

android:keepScreenOn="true" android:orientation="vertical"

xmlns:android="http://schemas.android.com/apk/res/android">

这样可以保持当前View所在的Activity一直在活动状态运行,而且屏幕是高亮的。非常耗电!!

2.通过PowerManager来精细控制。

首先在Manifest.xml文件里面用user-permission声明

android:name="android.permission.WAKE_LOCK"/>

android:name="android.permission.DEVICE_POWER"

/>

之后通过PowerManager服务来获取电量控制锁:

private void

acquireWakeLock()

{ if (wakeLock == null)

{ PowerManager

pm = (PowerManager)

getSystemService(Context.POWER_SERVICE); wakeLock =

pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,

this.getClass().getCanonicalName()); wakeLock.acquire(); } }

关键代码在newWakeLock的第一个参数,可以有:

*PARTIAL_WAKE_LOCK参数和其他不同,如果选择了这个参数,那即时用户按了关机键,CPU仍保持运行;而其他参数在用户按了关机键之后,CPU即停止运行,如果不按关机键,系统在过一段时间休眠后,CPU仍保持运行。

在程序退出时,必须释放WakeLock:

private void releaseWakeLock()

{ if (wakeLock != null

&& wakeLock.isHeld())

{ wakeLock.release(); wakeLock =

null; }

}

这两个方法分别在OnCreate/OnDestroy或者OnResume/OnPause中调用。

android 程序运行,Android如何保持程序一直运行相关推荐

  1. win10 android 登录,Microsoft现在允许您在Win10中运行Android应用程序

    8月7日消息:昨天,微软宣布了一项新功能,允许Win10用户在Windows 10中直接启动Android应用程序. 只有在选择三星Galaxy设备并允许Android将应用程序流到Windows 1 ...

  2. android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序

    android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序   在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity, ...

  3. 微软程序在Android上跑,想在Win 10上运行Android应用?这类手机用户已经可以尝鲜...

    在Win 10上运行Android应用?这听起来有些异想天开,可实实在在的需求却在这里,毕竟微软Windows体系内的无缝切换,离开了手机平台始终有些怪怪的,自然,微软也不会甘心放弃,最好的办法,莫过 ...

  4. 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台运行的控制台应用程序类型 | 编译 Windows 平台运行的 Android 逆向程序 )

    文章目录 一.Windows 平台运行的控制台应用程序类型 二.编译 Windows 平台运行的 Android 逆向程序 一.Windows 平台运行的控制台应用程序类型 hacktool 工程的类 ...

  5. 【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )

    文章目录 一.Android 平台运行的 cmd 程序类型 二.Android 平台运行的 cmd 程序编译选项 三.编译 Android 平台的 cmd 可执行程序 一.Android 平台运行的 ...

  6. 应用程序文件Android安全分析挑战:运行时篡改Dalvik字节码

    发一下牢骚和主题无关: 本文章由Jack_Jia编写,转载请注明出处. 文章接链:http://blog.csdn.net/jiazhijun/article/details/8833710 作者:J ...

  7. eclipse运行android程序,总是启动一个新的AVD模拟器,解决办法

    问题描述: 明明有一个AVD在运行,但是在运行Android程序的时候,却会重新启动一个AVD,再次运行,再次启动新的,给出的提示为:No active compatible AVD's or dev ...

  8. android中虚拟程序停止,为什么我的在虚拟机运行后出现应用程序停止运行

    源自:9-2 使用ToggleButton按钮实现开关效果 为什么我的在虚拟机运行后出现应用程序停止运行 package com.example.sss; import com.example.and ...

  9. Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”...

    ANDROID 一.首先是返回正在运行的程序,而不是新的ACTIVITY. 多网上关于 通知栏的例子都是打开一个新的Activity,代码也很多. 根据那些代码如下     public void s ...

  10. android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...

    今年 8 月,微软发布了一项 Your Phone 重大功能,可以在 Windows 10 PC 上运行 Android 应用程序.该功能主要通过 Your Phone 应用将 Android 应用投 ...

最新文章

  1. Android控件系统(三)——Window与WindowMananger
  2. BZOJ 3101: N皇后 构造
  3. 微型计算机物理地址转换,微型计算机及接口技术2015年4月真题试题(04732)
  4. 数据挖掘开源项目立项
  5. Qt工作笔记-跑马灯效果
  6. linux复制duo文件,Linux打印目录下多个文件
  7. new image()
  8. mysqli_fetch_row,mysqli_fetch_array,mysqli_fetch_assoc区别
  9. 城市风云儿的装备体系
  10. treeset 是有序吗_TreeSet如何实现有序?
  11. 黄聪:JQUERY的datatables插件,Date range filter时间段筛选功能
  12. 定位需求 整理思路 组装函数
  13. iOS 关于本地持久化存储的探讨
  14. 联想服务器改win7系统教程,联想台式机10代cpu改win7系统详细教程
  15. 毕业设计-校园招聘系统
  16. linux kernel的中断子系统之(三):IRQ number和中断描述符
  17. JAVA判断是不是回文_Java 基础编程练习(判断是否为回文)
  18. Review of Vehicle Recognition Technology - 车辆识别技术综述
  19. linux视频播放器mplayer,ubuntu 视频播放器mplayer
  20. 日常练习+学习之BUUCTF old-fashion 1

热门文章

  1. Git 进行分布式管理的入门
  2. Firt step(study java)
  3. Velodyne VLP16激光雷达的使用(非常详细)
  4. 【论文阅读】Locally Adaptive Color Correction for Underwater Image Dehazing and Matching
  5. termux 安装mysql 并运行b站爬虫入库 安卓11(手机上跑定时python爬虫)
  6. shiro中anon配置不生效
  7. 视频教程-Python编程的术与道:Python语言入门-Python
  8. 认识压电式雨量传感器的工作原理及MODBUS-RTU RS485通信协议
  9. xp系统简单tcpip服务器,Win XP系统下添加打印机的方式手工添加TCP/IP端口
  10. Swift-Tips之rounded(_:)