2014-05-12 81 views
-1

我正在寫一個android應用程序。在申請中有4項活動。所有活動都是相互獨立的。Android應用程序/進程的生命週期?


在我的應用程序中,我想使用套接字通信和服務。它們都是在第一個活動啓動時開始的,當最後一個活動退出時應該停止。開始活動是預設的,所以在開始時沒有問題。但最後一項活動是隨機的。在這種情況下,我應該如何停止服務並關閉套接字?當「應用程序」退出時是否有任何回調?我已經看到了Android的活動生命週期,但它並沒有說明整個過程的任何事情......

回答

0

如何使用AIDL接口到服務並讓每個活動註冊/取消註冊。然後讓服務計數活動數量,當計數器達到零時關閉套接字並退出。

0

onCreate and onDestroy - 支撐應用程序的整個生命週期。這對應用程序在應用程序加載到內存或從內存卸載時調用。這兩個括號是一個活動的整個生命週期。當它第一次加載時,onCreate被觸發,並且當應用程序處置onDestroy時被觸發。您顯然必須使用這兩者來設置和銷燬應用程序整個生命週期所需的資源 - 儘管在實踐中可能會更加微妙。系統可以在不調用onDestroy的情況下停止應用程序,並可以重新啓動觸發onCreate事件的應用程序。

onStart and onStop - 支持該應用可見的任何時段。這可能是該應用程序在後面說一個模態對話框。該應用程序是可見的,但不與用戶交互。這對事件可以在應用程序的整個生命週期中多次觸發。簡單的應用程序大多可以忽略onStart和onStop事件,因爲應用程序仍在內存中,並且不會丟失任何資源或狀態。 onStart和onStop的主要用途是讓應用程序有機會監視可能影響它的任何更改,而不與用戶交互。爲了更好地解決這個問題,還有onStart事件發生在onStart事件之前,但只有當這不是應用程序第一次啓動onStart時 - 這是一個真正的重新啓動。

onResume and onPause - 將應用程序處於前臺並與用戶交互的時間段括起來。在整個生命週期中,這一對事件再次發生多次。 onResume事件發生在應用程序處於前臺並執行其常規工作時。例如,當用戶切換到另一個應用程序時,會發生onPause事件。

你可以學到很多關於生命週期在這個冒險:看一看吧:http://www.i-programmer.info/programming/android/5966-android-adventures-lifecycle-and-state.html

編輯:

也許這將幫助你:How to handle activity life cycle involving sockets in Android?

這裏是一個很好的指南如何使用它們: http://tacticalnuclearstrike.com/2011/03/a-way-of-using-sockets-in-android/

+0

onDestroy並不總是被稱爲 – Suvitruf

+0

@Domi是不是它的活動... – Griffin

+0

對不起 - 讀過ov呃它 - 我做了一個問題,得到了一個關於「如何處理Android中的套接字」的問題 你總是有一個MainActivity,在那裏你可以覆蓋onDestroy – DominikAngerer