Advertisement

Android Application的生命周期

阅读量:
复制代码
 //一个普通的Application

    
 public class MyApplication extends Application {
    
  
    
     @Override
    
     public void onCreate() {
    
     super.onCreate();
    
     //当Application启动时,第一个调用
    
     }
    
  
    
     @Override
    
     public void onTerminate() {
    
     super.onTerminate();
    
     //当Application关闭、销毁时调用
    
     }
    
  
    
     @Override
    
     public void onLowMemory() {
    
     super.onLowMemory();
    
     //如果当前程序消耗的内存过多时会调用,
    
     //如果再调用本方法之后,内存消耗仍然继续,系统会杀死该Application
    
     }
    
  
    
     @Override
    
     public void onTrimMemory(int level) {
    
     super.onTrimMemory(level);
    
     //清理内存时被调用,level表示本次清理的等级
    
     }
    
 }

无需赘述的是一个与所有Activity的行为一致的方法,在应用程序启动时都会首先被调用一次

按照官方文档的注释说明, onTerminate() 方法不会被直接触发. 它的主要目的是模拟整个流程的行为, 因此在app退出时调用该方法是其预期行为.

在运行过程中一旦触发了low memory status(低内存状态),onLowMemory()方法就会被捕获并执行相应的处理逻辑以防止系统崩溃或应用终止。

4、onTrimMemory(int level)方法被调用的次数会比较频繁

当level属性设置为20时,该应用已处于不可见状态(类似于Android Activity的onStop事件周期),通常情况下无需过分关注这一状态。然而,在该值持续增长的情况下需要注意其变化趋势——数值越大则表明应用程序占用的内存随之增加,并且未得到有效释放管理。

通常情况下

该方法同样可以在Android组件如Activity和Fragment中进行实现,并且为了确保资源的有效管理,在每个Android Activity中执行相应的内存释放操作以避免因过度占用内存而导致设备无法正常运行。

此处该方法的参数详情请参考->onTrimMemory(int level)的具体意思

作为注释:内存占用量的问题核心,在不同Android设备上目前尚无统一的规范。

附2:这是我自行开发的一个工具包,如您喜欢的话,烦请各位能够给予star

全部评论 (0)

还没有任何评论哟~