在API14中,android提供了一个新的状态监听的接口 ComponentCallbacks2。在当中的onTrimMemory方法中,提供了一个状态参数 TRIM_MEMORY_UI_HIDDEN。应该算是一个“正式”的进入后台标志了,之所以打引号,是因为这个状态本意上并不是为了监听进入后台而设计的,它只是为了让开发人员能够在程序进入后台的时候去释放一些内存。但是,这个确实能够准确的监控。
那有没有别的办法可以不依靠API14也能做呢?答案是肯定的。
首先,程序压入后台,Activity肯定是要走pause、stop的,返回的时候会走resume和start,但是正常Activity的切换也是要走这几个方法的,怎么区分呢?
根据Activity的生命周期可以知道,Activity A启动Activity B是先走B的onStart,再走A的stop,这样我们可以根据这个特点,建一个baseActivity(正常应该每个人应用都会有吧),在里面建立一个计数器v,在onStart和onstop里分别对v+1和-1;这样可以保证v在切换完成后的增量是0,最后的值应该是1(应用启动时的mainActivity)。这样再程序压入后台的时候会在stop里对计数器-1,这样再返回的时候start里得到的值就是0,这样就可以判断是从后台返回了。大致代码如下:
private static int v; protected void onStart() { super.onStart(); if (v== 0) { // 从后台返回 } v++; } protected void onStop() { super.onStop(); if (v> 0) v--; if (sessionDepth == 0) { // 进入后台 } }
相关推荐
"Android后台程序清理器"是一款专门针对Android操作系统设计的应用程序,其主要功能是管理和优化手机中的后台运行程序,以提高设备性能和延长电池寿命。在Android系统中,应用程序经常会在用户不知情的情况下继续...
在Android系统中,实现“开机自启动+后台服务+自动关机”功能涉及到多个关键知识点。下面将逐一详细解释这些概念及其实现方法。 1. **开机自启动**:Android设备开机后,允许开发者通过注册BroadcastReceiver来监听...
下面我们将深入探讨Android监测网络状态的相关知识点。 首先,Android系统提供了`ConnectivityManager`服务,它是获取和管理网络连接的主要接口。通过`Context.getSystemService(Context.CONNECTIVITY_SERVICE)`...
Android 应用开发中,如何让应用程序按返回键退向后台运行是很多开发者关心的问题。在日常使用中,我们可以看到许多应用程序(如QQ、微信、微博)在按下返回键后,并没有退出,而是进入了后台运行。那么,在开发中是...
在Android开发中,后台多任务多线程断点下载是一项重要的功能,特别是在处理大文件时,如游戏安装包、视频或者其他大型数据包。这个过程涉及到多个关键知识点,下面将逐一详细解释。 首先,**Android后台服务...
在Android应用开发中,动态监测是一项至关重要的技术,它能够帮助开发者实时监控应用程序的运行状态,检测潜在的问题,提升用户体验。本文将详细阐述一种易部署的Android应用程序动态监测方案,旨在为开发者提供实用...
通过这个项目,你可以全面了解Android应用开发的基本流程,从界面设计到后台逻辑,再到与服务器的交互。同时,详尽的注释将帮助你理解每一行代码的作用,加速学习进程。所以,无论你是大一新生还是Android开发的新手...
在这个"android 温度监测APP"中,可能会使用到Service组件来持续运行后台服务,以便在用户不使用应用时也能持续接收和处理温度数据。 描述中提到的"通过socket接收温度信息",意味着我们需要利用网络编程技术,特别...
在Android平台上,开发人员可以实现一个功能,即从自己的应用程序中启动另一个应用,并且能够监控目标应用的运行状态。这通常涉及到Intent的使用,Activity管理,以及系统广播接收器。以下将详细介绍这些知识点: 1...
在Android平台上开发计步程序是一项常见...通过以上步骤,我们可以构建一个功能完备的Android计步程序,满足用户监测日常活动的需求。同时,开发者还可以进一步拓展功能,如添加睡眠监测、心率检测等,以提升用户体验。
在Android开发中,应用程序的持续时间通常指的是应用从启动到退出这一过程中的生命周期。这个生命周期包括了各种状态的切换,如活动(Activity)的创建、暂停、恢复和销毁,服务(Service)的启动与停止,以及后台...
在Android平台上,开发一款能够实时监测并显示网络速度的应用是一个常见的需求,这有助于用户了解他们的设备在使用数据时的表现。这个"Android网速监测demo"就是为此目的而设计的。下面我们将深入探讨这个主题,包括...
再者,对于单个应用程序的流量监测,Android API提供了一种名为`TrafficStats`的工具类。`TrafficStats`能够统计每个应用的上行和下行流量。通过调用`getMobileRxBytes()`和`getMobileTxBytes()`,我们可以获取到3G/...
该项目是将Android客户端与基于Spring框架的Java后台相结合,用于实现无线电监测功能。在这个小项目中,我们可以看到移动应用开发和后端服务交互的基本架构,这对于理解Android与服务器通信、Spring框架的应用以及...
Android O + 8.0 蓝牙锁屏后台扫描唤醒,Ble Background Scan 一个Android 8以上的蓝牙后台扫描唤醒的demo,Ble Scan Background wake up 这个demo的作用是实现8.0以后的后台监测到特定蓝牙信号自动唤醒APP的功能,...
该项目是一个集成Android客户端和基于Spring框架的Java后台系统的无线电监测应用。这个小项目展示了如何将移动设备与服务器端进行高效的数据交互,以实现对无线电频谱的监测功能。以下是关于这个项目的具体知识点...
1. **Android SDK**:项目基于Android SDK进行开发,这是Android应用程序的基础,提供了开发、调试和打包应用所需的所有工具。 2. **环境传感器**:PM2.5监测需要手机硬件支持,特别是环境传感器,如空气质量传感器...
总结来说,这个"android监测网络状态变化的Demo"涵盖了以下几个关键知识点: 1. 使用ConnectivityManager服务获取网络状态信息。 2. 创建BroadcastReceiver监听网络状态变化并处理事件。 3. 在AndroidManifest.xml中...