Android应用程序/进程的生命周期?

时间:2014-05-12 10:55:04

标签: java android sockets

我正在编写一个Android应用程序。在申请中有4项活动。所有活动都是相互独立的。


在我的应用程序中,我想使用套接字通信和服务。它们都在第一个活动启动时启动,并在最后一个活动退出时停止。启动活动已预设,因此启动时没有问题。但最后一项活动是随机的。在这种情况下,我应该如何停止服务并关闭套接字? "应用程序"是否有任何回调?退出?我已经看过android活动生命周期,但它并没有说明整个过程......

2 个答案:

答案 0 :(得分:0)

如何将AIDL接口用于服务并让每个活动注册/取消注册。然后让服务计数活动数量激活,当计数器达到零时关闭套接字并退出。

答案 1 :(得分:0)

onCreate和onDestroy - 括起应用程序的整个生命周期。当应用程序加载到内存或从内存中卸载时,将调用此对。这两个包括活动的整个生命周期。首次加载时,触发onCreate,并触发应用程序处理onDestroy。您显然必须使用这两个来设置和销毁应用程序整个生命周期所需的资源 - 尽管在实践中事​​情可能更加微妙。系统可以在不调用onDestroy的情况下停止应用程序,并可以重新启动应用程序来触发onCreate事件。

onStart和onStop - 括住应用可见的任何时段。它可能是应用程序背后说一个模态对话框。该应用程序可见但不与用户交互。在应用程序的整个生命周期内,可以多次触发这对事件。简单的应用程序通常可以忽略onStart和onStop事件,因为应用程序仍在内存中,并且不会丢失任何资源或状态。 onStart和onStop的主要用途是让应用程序有机会监控可能影响它的任何更改,同时不与用户交互。为了更加混淆这个问题,还有onRestart事件发生在onStart事件之前,但仅当这不是第一次应用程序触发onStart时 - 这是真正的重启。

onResume和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/