有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在写一个安卓应用程序。在应用程序中有4个活动。所有的活动都是相互独立的


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


共 (2) 个答案

  1. # 1 楼答案

    onCreate和onDestroy-将应用程序的整个生命周期括起来。当应用程序加载到内存或从内存中卸载时,会调用该对。这两种方法涵盖了一项活动的整个生命周期。第一次加载时,会触发onCreate,当应用程序被释放时,onDestroy会被触发。很明显,你必须使用这两种方法来设置和销毁整个应用生命周期所需的资源——尽管在实践中,事情可能更微妙。系统可以在不调用onDestroy的情况下停止应用程序,并可以触发onCreate事件重新启动应用程序

    onStart和onStop-括起应用程序可见的任何时间段。可能是应用程序在一个模式对话框后面。应用程序可见,但不与用户交互。在应用程序的整个生命周期内,这对事件可以多次触发。简单的应用程序大多可以忽略onStart和onStop事件,因为应用程序仍在内存中,不会丢失任何资源或状态。onStart和onStop的主要用途是让应用程序有机会在不与用户交互的情况下监视可能影响它的任何更改。更让人困惑的是,onStart事件发生在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/

  2. # 2 楼答案

    对服务使用AIDL接口并让每个活动注册/注销如何。然后让服务统计活动的数量,当计数器达到零时,关闭套接字并退出