如果没有数据传输,移动数据连接是电池杀手吗?

时间:2011-10-02 14:14:31

标签: java android

我正在开发一个使用移动数据连接(总是GPRS)的应用程序,每循环上传5分钟300 kb的数据。在两次上传之间,即使没有数据传输,我看到数据连接仍然保持正常(状态栏上的gprs徽标)....

此时(两次上传之间)电池是否由移动数据连接使用? 你认为我应该在上传之间使用这个method to disable and enable connection来保存batterylife或者没有帮助吗?

如果是这样的话......我如何在我的服务类中使用该代码,例如函数,而不创建新类?来自菜鸟的THAN!

修改

该应用程序仅供我个人使用,应用程序可以完全控制手机(手机是独立的,不会与用户交互)。所以我可以sto所有的数据连接...但我不能使用我想要的代码(作为一个功能!)帮助我!

编辑2

无论如何,我能够启用和禁用“飞行模式”,但重新连接需要最少13-14秒。可能有助于在“死时间”节省电池吗?

3 个答案:

答案 0 :(得分:0)

自Android 1.5以来,AlarmManager支持所谓的不精确重复setInexactRepeating)。它基本上是一种机制,允许通过从设备上的所有应用程序收集所需的间隔并确保它们同时进行通信来最小化电话唤醒数据的次数。

虽然五分钟很频繁,也许你可以把它减少到15或30分钟,这将节省大量的电池。

答案 1 :(得分:0)

GPRS需要花费一些电池,但一般情况下,大多数手机都处于“永远在线”状态。其他真正耗尽电池的东西都是唤醒锁。你保留这些吗? 为什么是GPRS而不是UTMS? 对于您提供的链接,这是一种为所有应用启用移动数据使用的方法。这是你真的不想做的事情,因为你的用户会非常不开心。可能存在特定情况(限制部署到严格控制的手机)这是有道理的,但总的来说,这无关紧要。

顺便说一下,在您的Android设置(设置 - >系统 - >电池)中,您可以了解您的应用耗尽了多少电量。

[编辑]在您描述的情况下,最好的办法是在您不使用移动数据时真正转向移动数据。但这将是相当棘手的(没有根植你的手机,我甚至不确定它是否可能)并且它将花费你很长时间。确保你真的需要那种提取率的汁液 如您所链接的帖子所述,您需要拥有Android版本< 2.3(最高2.2)和MODIFY_PHONE_STATE权限才能禁用网络。姜饼是不可能的。

答案 2 :(得分:0)

  

我正在开发一个使用移动数据连接(总是GPRS)的应用程序,每循环上传5分钟300 kb的数据。

您正在使用用户所选数据连接的任何内容。如果你愿意,你可以选择跳过在WiFi上的工作,虽然我不太清楚为什么。

  

此时(两次上传之间)电池是否由移动数据连接使用?

GSM或CDMA无线电总是消耗电池。它在活动数据传输期间消耗更多,但始终打开电源(除非设备处于飞行模式)。

  

您是否认为我应该使用此方法来禁用和启用上传之间的连接以保存batterylife或者没有帮助?

只有当您运行该应用程序的唯一人员是您,您运行的是Android 2.2设备(或更早版本),并且您不介意弄乱手机。

你链接到的代码很可怜 - 它可能在某些设备上中断,并且将来可能会中断,因为它绕过了SDK。此外,如果它不是你的手机,我不太清楚为什么你认为你有权使用其他人的设备。而且,最重要的是,从Android 2.3开始,您无法再持有使用该黑客所需的权限。