2 qq 30130435 qq_30130435 于 2016.02.25 21:35 提问

Android中可以在一个activity类里内置一个service类吗

我写了一个倒计时的程序,我想让手机关闭屏幕时这个倒计时功能仍能继续,目前我的程序虽然在屏幕关闭时仍能进行倒计时功能,但是屏幕关闭久了这个倒计时功能会停止,设计的倒计时界面也会关闭(虽然这个界面我在一个service中写了一个广播,只要屏幕关闭这个activity就会启动,但屏幕关闭久了倒计时仍会停止),所以我想写个service,让启动倒计时功能的方法长驻,这行不行得通?或者大神们有更好的思路吗?

8个回答

a1306500394
a1306500394   2016.02.26 08:54
已采纳

不知你的计时程序用的哪种类写的,可以使用AlarmManager来实现,设定参数为ELAPSED_PEALTIME_WAKEUP,这样在手机休眠时可以唤醒CPU,
可以一直执行下去,若用Timer类来实现就没有这样的功能

qq_30130435
qq_30130435 我没用alarmmanager,只是简单的对比系统时间的差,看看timer类计时时的剩余时间是否跟系统时间一致,不一致就把系统时间的差赋值给timer,这样问题就解决了。不过感谢你的提议,采纳你意见
接近 2 年之前 回复
qq_30130435
qq_30130435 我就是用timer写的,现在有挺多问题,多谢你的建议,我去试试
接近 2 年之前 回复
devmiao
devmiao   Ds   Rxr 2016.02.25 21:56
qq_30130435
qq_30130435 谢谢你的链接
接近 2 年之前 回复
luochoudan
luochoudan   Ds   Rxr 2016.02.25 23:03

好像也没有更好的办法,service监听系统广播,若当前没有activity运行,就启动它,好像个病毒呃。。。

qq_30130435
qq_30130435 我是想起码让倒计时功能不停止
接近 2 年之前 回复
z290952477
z290952477   2016.02.25 23:58

我觉得这是因为Android系统会自动杀掉程序所导致的,我认为可以开两个进程,互相监控,当一个进程被杀掉就在另一个进程重新打开他,不知这样可不可以。。。。。。

dongfeng9ge
dongfeng9ge 回复qq_30130435: 两个进程互相监听?这是明显的病毒呀
接近 2 年之前 回复
qq_30130435
qq_30130435 我觉得两个都可能会被同时杀死
接近 2 年之前 回复
u013278099
u013278099   2016.02.26 10:00

个人感觉可以用AlarmManager

lxk_1993
lxk_1993   Rxr 2016.02.26 11:00

百度搜索Activity 和 service

dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.02.27 15:00

建议使用AlarmManager

namelin2
namelin2   2016.03.03 03:15

服务本身就是后台运行的,像音乐播放器锁屏了依旧能播放歌曲就是这个原理

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!