android:服务在没有连接到pc时表现不同

时间:2010-11-08 00:48:30

标签: android service sleep battery

我相信这是因为有一些节电选项或者其他什么,但我无法调试它,因为它只是在电池上时失败

我有一项每60秒检查一次网页的服务 我在服务中使用asyncTask来执行此操作 我把它变成了Thread.thisThread.sleep(60000);在检查之前

我做错了什么?睡眠功能会导致服务器被android停止吗?

1 个答案:

答案 0 :(得分:5)

  

我有一个服务,每60秒检查一次网页,我在服务中使用asyncTask来做这个,我把它做成Thread.thisThread.sleep(60000);在检查之前

请不要那样做。

首先,使时间段可配置,包括“不要这样做,永远”选项。当开发人员编写主要用途似乎耗尽大量电池寿命的应用时,用户真的不喜欢它。保持设备唤醒并每分钟轮询一台Web服务器将耗费大量的电池寿命。这样的行为导致用户跑到他们能找到的每个任务杀手。

其次,特别是大于一分钟左右的时段,请使用AlarmManager和[WakefulIntentService] [1]。安排AlarmManager在用户选择的时间段(理想情况下通过setInexactRepeating())调用您的应用程序。让WakefulIntentService轮询您的网页。如果您遵循记录的WakefulIntentService食谱,设备将保持清醒足够长的时间以便您获取数据,然后就会重新入睡。您的服务不会始终保留在内存中。您可以获得功能,并且用户可以获得更好的设备性能。