http://blog.csdn.net/laowenchao/article/details/5848915

这个错误的原因很明显,看到finalized这个词就应该知道。

finalize是基类Object中的一个函数,当对象被GC时会自动调用,有点像C++中的析构函数,但由于GC的不确定性,不能当作析构函数使用。
WakeLock finalized while still held 表示 WakeLock对象在销毁时仍然被持有。
因为我的Activity里,只有WakeLock.acquire方法,而没有去release,所以当Activity关闭时,WakeLock仍然被持有(或着说锁着),而WakeLock作为Activity持有对象会随着Activity的销毁而销毁。
而事实上,我希望Service在后台在待机状态下保持运行,必须保持WakeLock状态。
所以在这种情况下,WakeLock应该被Service持有,也就是在Service中创建。
然而仍有两个奇怪的现象:
1.我在Activity创建Service前创建WakeLock并调用WakeLock.acquire,然后在Activity的 onDestory方法中调用WakeLock.release方法。理论上,由于WakeLock已解锁,程序不会在待机状态下运行(或者说手机会进入睡眠状态),然而,真机上,Service待机运行毫无问题。
2.我在Service的onCreate方法创建WakeLock并调用WakeLock.acquire。没有在任何地方调用release。在真机上程序无法在待机状态下运行。

WakeLock finalized while still held相关推荐

  1. WakeLock finalized while still held:

    屏幕常亮 常亮需要的权限 <uses-permission android:name="android.permission.WAKE_LOCK" /> 代码形式保持常 ...

  2. Android6.0的SMS(短信)源码分析--短信接收

    1     SMS接收流程 Android6.0中对短信的处理比起老版本还是变化有点大的.在分析源代码之前,我们可以先猜测一下Android中接收短信的大致流程.首先根据之前分析phone应用的经验, ...

  3. Android:短信的接收

    短信的接收, 请先看一个 Demo private void initReceiverSms() {tv_content = (TextView) findViewById(R.id.tv_conte ...

  4. Android5.0框架层短信接收过程分析

    本文分析使用的是android5.0的源代码,涉及的相关文件: frameworks\opt\telephony\src\java\com\android\internal\telephony\RIL ...

  5. Android6.0 wakelock深入分析

    这篇博客我们分析下Power的持锁,从PowerManager到PowerManagerService再到hal分析. 一.PowerManager的持锁接口 我们先来看下PowerManager对应 ...

  6. Android7.0 PowerManagerService(2) WakeLock的使用及流程

    作为移动终端,电量是一种稀缺资源,需要尽可能的节省.于是,Android系统在空闲时,会主动进入到休眠状态.  我们知道整个Android系统中运行着很多个进程,因此必须有一种机制能够知道每个进程是否 ...

  7. PowerManager之WakeLock源码解析

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 首先看源码注释里对WakeLock类的注释: /*** A wake lock is a mechanism ...

  8. Android WakeLock详解

    目录 目录 前言 WakeLock使用 WakeLock levelAndFlags和使用场景 参考场景 WakeLock源码分析 结束语 前言 不知道大家是否也想过,当你手机灭屏的时候,为什么一条微 ...

  9. 从Android应用层及Framework层的角度分析WakeLock锁机制

      从Android应用层及Framework层的角度分析WakeLock锁机制 本篇博客编写思路总结和关键点说明: 为了更加方便的读者阅读博客,通过导读思维图的形式将本博客的关键点列举出来,从而方便 ...

最新文章

  1. python基础学习-5(包与模块)
  2. html使用highcharts绘制饼图,html js highcharts绘制圆饼图表
  3. ML基石_4_FeasibilityOfLearning
  4. wikioi 1160 蛇形矩阵
  5. C++words search单词搜索的算法实现(附完整源码)
  6. Linux umask 文件默认权限
  7. 使用Python SocketServer快速实现多线程网络服务器
  8. 动态引用外部的Javascript脚本文件
  9. SQL Server高级查询之子查询(多行子查询)
  10. Atitit. 委托的本质 c#.net java php的比较
  11. python-类(class)是什么?怎么用?
  12. vue功能-数字键盘
  13. 产业分析:2022南京市产业全景
  14. win10系统做T3服务器,win10如何安装用友t3_win10安装用友t3教程
  15. 写个简单的飞机游戏玩玩
  16. 搭建git 服务器出现 Error executing action `create` on resource 'user[GitLab user and group]'
  17. js自下而上无缝滚动
  18. spyder pyecharts不显示_逆袭的IGZO-IPS小金刚!微星PAG272QRZ显示器评测:色域、响应速度更优秀...
  19. 二叉树:表达式二叉树转换成中缀式(括弧处理)
  20. dd 命令用来测试硬盘读写速度

热门文章

  1. ubuntu 18.04安装owncloud 搭建自己的私有云盘
  2. java properties containskey_Java Properties containsKey(value)用法及代码示例
  3. 趣味题_蚂蚁爬杆_猴子分桃
  4. Winform的Panel绘制边框
  5. 我看了半天还是没看明白大巴为什么当上助攻王的原因,反而稀里糊涂看了那么多国产后卫的名字
  6. STC89C52单片机DS1302介绍以及代码示例
  7. 传奇服务端结构传奇服务端结构
  8. 手机端访问PC端网站判断识别跳转至手机端页面代码集锦
  9. JS SHA1加密算法(微信小程序 SHA1加密算法使用)
  10. 授之以渔——我读《应需而变》