3358 blog.csdn.net/Lao wenchao/article/details/5848915
这个错误的原因很明显,看finalized这个词就应该明白了。
finalize是基类Object的函数,在GC对象时自动调用。 它类似于C的析构函数,但由于GC的不确定性,不能用作析构函数。
wakelockfinalizedwhilestillheld表示wakelock对象在销毁时保持不变。
我的Activity中只有WakeLock.acquire方法,没有去release,所以当Activity关闭时,WakeLock仍然是持有(或被锁定)的。
其实,我希望服务器必须在后台保持待机状态下运行,保持WakeLock状态。
因此,在这种情况下,WakeLock应该被保留在服务中,即在服务中进行制作。
但是,还有两个奇怪的现象。 1 .我在Activity创建服务之前创建WakeLock,调用WakeLock.acquire,然后在Activity的onDestory方法中调用WakeLock.release方法。 理论上,由于WakeLock已解锁,因此程序不会在待机状态下运行。 也就是说,手机进入休眠状态。 但是,实际设备上服务的待机动作没有问题。
2 .用服务的onCreate方法创建WakeLock,并调用WakeLock.acquire。 哪里都没有调用release。 实机上的程序不能在待机状态下执行。