-1

我相信这是因为一些省电选项或其他原因,但我无法调试它,因为它只有在使用电池时才会失败

我有一项服务,每 60 秒检查一次网页我在服务中使用 asyncTask 来执行此操作,并将其设为 Thread.thisThread.sleep(60000); 检查前

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

4

1 回答 1

5

我有一项服务,每 60 秒检查一次网页我在服务中使用 asyncTask 来执行此操作,并将其设为 Thread.thisThread.sleep(60000); 检查前

请不要那样做。

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

其次,特别是对于超过一分钟左右的时间段,请使用AlarmManager和 [ WakefulIntentService][1]。安排AlarmManager在用户选择的时间段(最好是通过setInexactRepeating())调用您的应用程序。对WakefulIntentService您的网页进行投票。如果您按照记录的WakefulIntentService方法进行操作,设备将保持唤醒状态的时间足够长,以便您获取数据,然后重新进入睡眠状态。您的服务不会一直保留在内存中。你得到你的功能,而用户得到更好的设备性能。

于 2010-11-08T01:08:13.360 回答