2014-05-06 64 views
0

我有一個android應用程序。 它打開到另一臺機器上的服務器的Internet連接。 服務器將常規狀態更新發送回android應用程序 應用程序有多個活動,並且必須通過每個活動之間的同一個打開的連接。Android應用程序在後臺關閉連接線程

具有保持連接的自定義應用程序對象符合這種情況非常好

不過:如果我的應用程序退出我想關閉連接,終止線程並停止接收來自服務器的這些更新。 但是我已閱讀文章解釋說,Android應用程序不會退出,並且不可能獲得終止事件/消息/信號。

任何人如何在Android應用程序中關閉連接? 如何阻止我的線程並停止浪費電池?

+0

你讀過關於android應用程序的生命週期嗎?當您的應用程序進入後臺或暫停或被操作系統刪除時,會有Android OS調用掛鉤。你不能在這些階段做些什麼來關閉連接嗎?檢查這篇文章:http://developer.android.com/training/basics/activity-lifecycle/index.html – prabugp

+0

連接運行在後臺作爲服務或AsynchTask? – zIronManBox

+0

沒有連接沒有在後臺運行。在應用程序對象中,我啓動一個線程。我希望停止應用程序的停止活動。我無法使用活動生命週期,因爲活動始終停止並終止,並且我不希望每次活動更改時都會斷開連接 – Robert3452

回答

1

我發現實現此目的的方法是創建一個服務來計算綁定到自身。然後我將每個活動綁定到該服務。 如果服務注意到它有0個綁定,它會等待一段時間然後終止。

我已經充分證明我的做法在這裏: https://code.metcarob.com/node/201

我不與它完全滿意,但它是我能找到的最好的解決方案。

+0

鏈接被破壞 – fdermishin

+1

對不起https://code2.metcarob.com/node/201 - 這已經很老了 – Robert3452

相關問題