2012-01-05 104 views
1

我做了连接到我的服务器每隔5-10分钟,检查是否有在数据库中的一些变化的应用程序。安卓应用程序在后台漏电池耗尽

所以我使用服务,使应用程序可以在后台运行,用户可以在状态栏关闭应用程序,并获取消息。在里面我使用线程,使应用程序睡5-10分钟。当我锁定手机时,问题就开始了。比应用程序只是停止(这是因为当你锁定手机进入“休眠”),所以我想通了,我需要这样的:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'My Tag');  
wl.acquire(); 

这就使得手机不要去睡觉除屏幕。但是,我卡住了。这工作正常,但耗尽电池。 10%每小时:(我相信,没有一个问题,应用程序必须使这些Web服务请求所有thime,但强制该手机活着的功能

所以,我的问题是,如果有是我可以使用的任何其他解决方案,因为我有一些在backgorund运行的手机上的应用程序,但他们不会耗尽电量太多(avast,果汁后卫等)。 !

的问候!

回答

1

有关使用推送机制,如C2DM for Android,而不是投票所有什么时间。

1

你必须尽快释放wakelocks。不要使用它们。请尝试使用广播接收器和AlarmManger来做你想做的事。

1

报警经理和Broadcst接收器是你的朋友。而且你也可以考虑一下,如果手机位于穿裤子的屁股袋深处,状态栏中的变化是多么重要。是不是像这样重要呢?即使在这种情况下它也必须发生?

0

你可以建立一个AlarmManager与RTC标志,每5分钟启动服务(也许IntentService越好),内部服务获取激活锁定,而做网络运营,并尽快完成后停止该服务。

相关问题