2015-09-04 69 views
-3

我正在实施将始终运行并连接到服务器的应用程序。总是运行网络android应用程序的最佳做法是什么?

因此,除了运行此应用程序以外,平板电脑无所不能,并且始终检查服务器是否有更新显示在屏幕上。

保持应用程序始终运行和连接的最佳做法是什么?

以我的经验,我有2个选项来解决这个问题:

  1. 服务始终运行并连接到我的活动,以保持更新。
  2. 将作业保留在线程之内,因为活动将始终保持开启。该应用将永远在线。

我的问题是:

  1. 什么是保持运行的所有应用程序的最佳做法?
  2. 保持应用程序连接的最佳做法是什么?活动中的线程?或服务连接到活动?
  3. 这种应用程序类型有没有优选的结构?

谢谢

回答

2
  1. 电池是我会一直考虑的事情,特别是当网络任务必须完成时。因此,分析连接服务器的绝对必要位置。
  2. 每当服务器需要联系设备使用GCM推送通知,将节省您的电池的果汁,你会在轮询花服务器

好了

服务V/S线程

是关心使用服务,您应该在其中产生将执行联网任务的工作线程 这些线程将在主服务线程通知主服务线程时因为如果你关闭活动网络请求将仍然会履行一旦请求完成保存它在一些存储形式(数据库/共享前/内容提供者)并从它们中检索它。一旦你完成了不要因为所有stopSelf一个适当的点而破坏服务,否则服务将不断地耗尽你的手机资源。这会让你成为坏公民。

我提到的about模式的一个简单实现是IntentService,它会自动产生工作线程,也就是说你只需要重写handleIntent方法,并且完成所有在主线程中不会执行的大量提升操作。而IntentService杀死它的自我的时候,如果发现自己做 你问我的理解这个问题涉及与服务器同步的空话,你可以找到更多关于Android电子文档 http://developer.android.com/training/building-connectivity.html

1

如果你读的Android官方实况。最好的解决方案是使用适合你的应用程序的服务。它准备在后台连续运行。您可以实施它以透明方式检查网络,并且可以将信息绑定到其他活动。此外,如果稍后您想要更改连接或要求(它不会影响您的应用程序活动),则它更具可扩展性。

编辑。 好的一点是,如果有一天你的应用程序不在前台的原因。该服务仍可以运行。服务准备用于长时间运行的任务http://developer.android.com/guide/components/services.html

+0

能否请你举安卓实况,所以我可能会读它。此外,该应用程序不需要在后台,它将始终运行在前台。谢谢 – MBH

相关问题