如何保持程序的一直运行状态,即使机器在睡眠时

时间:2022-10-15 10:32:11
我有一个程序,需要一直运行着,并保持数据连接,即使机器在睡眠时.收到指定数据时,还要把机器从睡眠中唤醒。
有什么好的方法吗?谢谢!

23 个解决方案

#1


我也很感兴趣。
帮楼主顶了,一起学习。

#2


好像有个CeRunAppAtTime函数跟这个相关,但是还是不清楚什么使用

#3


写一个后台服务呗~只要手机开着就在运行~

#4


楼上的,后台服务程序,在机器睡眠时也会运行吗?

#5


你说的睡眠是什么意思?我开发的那个手机好像没有睡眠功能~反正只要操作系统活着他就在运行

#6


可以使用keybd_event,不让系统休眠

#7


“你说的睡眠是什么意思?我开发的那个手机好像没有睡眠功能~反正只要操作系统活着他就在运行”

PocketPC有睡眠的功能,SP的没有。就是你按掉电源后,就进入睡眠状态了。程序实际上被挂起了。

“可以使用keybd_event,不让系统休眠”
休眠还是要让的,要不待机时间就会很短了,只要我的程序接收 网络消息就可以了

#8


就这么说吧 你的手机在睡眠的时候还能不能接电话?如果能,那写成服务的形式就应该行。因为有电话呼入也应该是一个服务在监控。如果睡眠的时候连电话都接不了那就没招儿了

#9


接电话是可以,但是接电话好像是系统的事件,硬件上都会有事件触发,所以我们的程序跟系统的也不一样。

那我先试下看服务程序行不行。

#10


睡眠时,系统是不运行的,这个“系统”一般指全部的应用、驱动、操作系统层的所有东西,绝大部分的硬件外设。
所以,lz的命题在一个cpu的体系下是不能成立的。

要实现lz的需求,只有用外部设备来实现唤醒。
比如PPC来电话能接,因为大部分的PPC有两个cpu:一个AP就是运行PPC系统,进行常用功能的,一个BB是进行GSM/CDMA语音解析的。睡眠时,AP休眠,一切静止。而BB是随时会跟网络连通,接受电话、短信信息的。只要有了电话、短信,就会通过可唤醒源去触发唤醒AP,使得AP的系统恢复运作。

lz的需求必须用类似的架构,AP负责运作系统,一个小cpu负责进行“保持数据连接”的工作,当收到数据时,通过可唤醒源去触发唤醒AP。

#11


楼上说的很清楚了

#12


我也想知道,帮顶~~

#13


UP

#14


学习中!

#15


引用 10 楼 shuiyan 的回复:
睡眠时,系统是不运行的,这个“系统”一般指全部的应用、驱动、操作系统层的所有东西,绝大部分的硬件外设。 
所以,lz的命题在一个cpu的体系下是不能成立的。 

要实现lz的需求,只有用外部设备来实现唤醒。 
比如PPC来电话能接,因为大部分的PPC有两个cpu:一个AP就是运行PPC系统,进行常用功能的,一个BB是进行GSM/CDMA语音解析的。睡眠时,AP休眠,一切静止。而BB是随时会跟网络连通,接受电话、短信信息的。只要有了电话、…


不错,但是单核手机就不同了

#16


一般说来 这个是不可能实现的。

#17


网上搜索一下WINCE电源管理就知道了。 

WMSDK里面还有个例子叫PowerManager。

#18


mark

#19


关注的学习一下.

#20


关注下
MARK
跟着学习

#21


即使休眠了网络端口也是打开的吧,要不然飞信怎么做的啊。

#22


SetPowerRequirement

#23


mark

#1


我也很感兴趣。
帮楼主顶了,一起学习。

#2


好像有个CeRunAppAtTime函数跟这个相关,但是还是不清楚什么使用

#3


写一个后台服务呗~只要手机开着就在运行~

#4


楼上的,后台服务程序,在机器睡眠时也会运行吗?

#5


你说的睡眠是什么意思?我开发的那个手机好像没有睡眠功能~反正只要操作系统活着他就在运行

#6


可以使用keybd_event,不让系统休眠

#7


“你说的睡眠是什么意思?我开发的那个手机好像没有睡眠功能~反正只要操作系统活着他就在运行”

PocketPC有睡眠的功能,SP的没有。就是你按掉电源后,就进入睡眠状态了。程序实际上被挂起了。

“可以使用keybd_event,不让系统休眠”
休眠还是要让的,要不待机时间就会很短了,只要我的程序接收 网络消息就可以了

#8


就这么说吧 你的手机在睡眠的时候还能不能接电话?如果能,那写成服务的形式就应该行。因为有电话呼入也应该是一个服务在监控。如果睡眠的时候连电话都接不了那就没招儿了

#9


接电话是可以,但是接电话好像是系统的事件,硬件上都会有事件触发,所以我们的程序跟系统的也不一样。

那我先试下看服务程序行不行。

#10


睡眠时,系统是不运行的,这个“系统”一般指全部的应用、驱动、操作系统层的所有东西,绝大部分的硬件外设。
所以,lz的命题在一个cpu的体系下是不能成立的。

要实现lz的需求,只有用外部设备来实现唤醒。
比如PPC来电话能接,因为大部分的PPC有两个cpu:一个AP就是运行PPC系统,进行常用功能的,一个BB是进行GSM/CDMA语音解析的。睡眠时,AP休眠,一切静止。而BB是随时会跟网络连通,接受电话、短信信息的。只要有了电话、短信,就会通过可唤醒源去触发唤醒AP,使得AP的系统恢复运作。

lz的需求必须用类似的架构,AP负责运作系统,一个小cpu负责进行“保持数据连接”的工作,当收到数据时,通过可唤醒源去触发唤醒AP。

#11


楼上说的很清楚了

#12


我也想知道,帮顶~~

#13


UP

#14


学习中!

#15


引用 10 楼 shuiyan 的回复:
睡眠时,系统是不运行的,这个“系统”一般指全部的应用、驱动、操作系统层的所有东西,绝大部分的硬件外设。 
所以,lz的命题在一个cpu的体系下是不能成立的。 

要实现lz的需求,只有用外部设备来实现唤醒。 
比如PPC来电话能接,因为大部分的PPC有两个cpu:一个AP就是运行PPC系统,进行常用功能的,一个BB是进行GSM/CDMA语音解析的。睡眠时,AP休眠,一切静止。而BB是随时会跟网络连通,接受电话、短信信息的。只要有了电话、…


不错,但是单核手机就不同了

#16


一般说来 这个是不可能实现的。

#17


网上搜索一下WINCE电源管理就知道了。 

WMSDK里面还有个例子叫PowerManager。

#18


mark

#19


关注的学习一下.

#20


关注下
MARK
跟着学习

#21


即使休眠了网络端口也是打开的吧,要不然飞信怎么做的啊。

#22


SetPowerRequirement

#23


mark