关闭

Android监测程序压入后台及从后台返回

166人阅读 评论(0) 收藏 举报




    博客分类:

在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,这样就可以判断是从后台返回了。大致代码如下:

伦理片 http://www.dotdy.com/

Java代码  收藏代码
  1. private static int v;  
  2. protected void onStart() {  
  3.            super.onStart();  
  4.            if (v== 0) {  
  5.             // 从后台返回  
  6.   
  7.         }  
  8.         v++;  
  9. }  
  10.   
  11. protected void onStop() {  
  12.        super.onStop();  
  13.         if (v> 0)  
  14.             v--;  
  15.       
  16.         if (sessionDepth == 0) {  
  17.             // 进入后台  
  18.         }  
  19.    }  

 

影音先锋电影 http://www.iskdy.com/



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:140765次
    • 积分:2177
    • 等级:
    • 排名:第18047名
    • 原创:0篇
    • 转载:504篇
    • 译文:0篇
    • 评论:6条
    文章存档