【问题标题】:Battery Drain Issue电池耗尽问题
【发布时间】:2013-01-04 16:27:17
【问题描述】:

我在我的应用程序中使用了许多一直在运行的线程。这些线程用于定期向服务器发送数据。通过服务调用。问题是我的应用程序消耗了大量电池。我想解决这个问题。如何?? 我的意思是gmail等不会消耗那么多电池。

【问题讨论】:

  • 如果线程定期发送数据,它们应该只定期运行。有一个组件,其工作是检查是否有数据要发送 - 如果是,则创建一个线程来发送它并完成。
  • @Payal 您的服务是在每次运行时都将更新的数据发送到您的服务器,还是仅用于与服务器同步数据以检查是否有可用的更新?
  • 实际上它每 5 分钟发送一次更新数据。在这 5 分钟内,线程已进入睡眠状态。
  • 使用唤醒意图服务,定期向服务器发送数据而不是线程。 github.com/commonsguy/cwac-wakeful
  • @Payal : 如果你使用 AlarmManager 和 IntentService 而不是 Thread 或 timer 来实现你当前的代码会更好

标签: java android multithreading


【解决方案1】:

Gmail 等应用程序不会频繁地请求服务器,您可能需要检查解决方案的架构,您还需要其他机制来执行此操作: http://developer.android.com/reference/android/os/AsyncTask.html http://developer.android.com/guide/components/services.html

【讨论】:

    【解决方案2】:

    我建议您查看Googles Android Training on minimizing the battery usage 并关注如何有效地访问网络并在那里发送文件。

    还有一个nice video presentation from Google's IO event 触及主题(在视频的 1/3 左右)。它提供了一些代码,可能比前面提到的文档更容易理解但没有那么深入

    【讨论】:

      猜你喜欢
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多