2015-09-04 68 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

相關問題