BaseActivity(Activity生命周期)

2024-08-31 17:32

本文主要是介绍BaseActivity(Activity生命周期),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇文章主要介绍actiivty的生命周期,并献上平时项目中用到的一个类,个人觉得挺好的,代码如下:
public class BaseActivity extends Activity implements View.OnClickListener{
public static LinkedList mlist=new LinkedList();
@Override

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mlist.add(this);
}@Override
protected void onDestroy()
{super.onDestroy();mlist.remove(this);
}/****用于程序结束退出,当然代码每个activity都要继承该Baseadtivity*/
public static void finish_all() {for (Activity mactivity : mlist) {mactivity.finish();}mlist.clear();
}@Override
public void onClick(View v) {}

}
这是我常用管理activity的一个类,好处在于你可以一次结束所有的activity,于此同时你可以遍历知道哪个activity还在栈中,onclick方法基本每个activity都会使用,减少代码量。下面来介绍activity的生命周期:
随着activty自身状态的变化,系统会调用相应的回调函数,也称呼为activity的生命周期,如下:

1. onCreate()--->  activity 被创建,做一些初始化的行为,比如加载布局资源
2. onRestart()-->actiivty正在重新启动,当当前activity由不可见变成可见时,onRestart就会被调用。
3. onStart()---> activity可见,未出现在前台无法和用户交互,已显示,但看不见
4. onResume()---> activity可见,出现在前台和用户交互
5. onPause()--->activity正在停止,紧接着就是onstop,如果快速再回到当前,onResume就会被调用,可以在此方法停止动画但不要做耗时操作,因为onPause必须先执行完,新activity的onResume才会执行。   onSaveInstantceState()--> 6. onStop()--->  activity即将停止7. onDestory()-->activity即将被销毁,做回收工作和最终的资源释放

(注释) 以上为当A activity跳转到B activity并且跳转后A activity活动不保留,我们可以看到跳之前会暂停当前活动并保存当前用户数据(onSaveInstantceState()),停止当前活动,跳之后,A结束,当A再次回到前台进程时,A会再次执行oncreated,onstart(),恢复销毁前执行的onSaveInstantceState所保存的数据。其实主要强调(onSaveInstantceState(),onRestoreInstanceState())他们不在生命周期中,但是确实是被调用过,开发中可以利用一下。
当A跳转B时,A只是看不见的话并未消失的话,那么就不会再次执行oncreate(),而是执行的 6、onRestart(),也不会执行onRestoreInstanceState(),因为A活动并未消失,并未 7、OnDeatory().
以上7个就是activity的生命周期。

这篇关于BaseActivity(Activity生命周期)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124542

相关文章

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

【Vue】关于Vue3的生命周期

目录 Vue3中新增了一个setup生命周期函数:(1) setup执行的时机是在beforeCreate生命周期函数之前执行,在setup函数中是不能通过this来获取实例的;(2) 为了命名的统一性,将beforeDestroy 改名为 beforeUnmount,destroyed 改名为 unmounted 生命周期函数: setup —— 不能通过this来获

09 生命周期

生命周期 beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestorydestoryed 辣子鸡:香辣入口,犹如吃了炫迈一样 - - - 根本停不下来 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport"

Maven生命周期:深入理解构建过程

目录 1. Maven生命周期简介 2. 默认生命周期的阶段 3. 清理生命周期 4. 站点生命周期 5. Maven生命周期的灵活性 6. 结论         在Java开发中,Maven是一个不可或缺的工具,它通过自动化项目的构建、依赖管理和文档生成等任务,极大地提高了开发效率。Maven的核心之一是其构建生命周期,它定义了项目构建过程中的一系列阶段。在这篇文章中,我们将深

【前端】animation动画以及利用vue制作简单的透明度改变动画,包含vue生命周期实现

一. 问题描述 想做一个文字透明度从1到0然后再从0到1的css动画。 二. 代码写法 2.1 animation写法 2.1.1 animation属性key 2.1.2 代码展示 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=de

【C++多线程编程】 线程安全与对象生命周期管理

目录 类的线程安全 实现线程安全  构造函数在多线程中的安全性 析构函数多线程环境的安全 智能指针实现多线程安全  shared_ptr 非完全线程安全 shared_ptr可能导致对象生命周期延长 const引用可以减少传递shared_ptr开销 shared_ptr 智能指针块模块的优点  析构所在线程问题分析  RAII的使用 enable_shared_from_

【ReactJS】通过一个例子学习React组件的生命周期

源代码 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Reac

1.1 Avtivity的生命周期全面分析

本文将Activity的生命周期分为两部分内容,一部分是典型情况下的生命周期,另一部分是异常情况下的生命周期。所谓典型情况下的生命周期,是指在有用户参与的情况下,Activity所经过的生命周期的改变;而异常情况下的生命周期是指在Activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销毁重建,异常情况下的生命周期的关注点和典型情况下略有不同。 1

LeakCanary测试app内存泄露+registerActivityLifecycleCallbacks管理Activity的生命周期

public class MyApplication extends Application {private String tag = "MyApplication";private static Stack<Activity> activityStack;//检测内存泄露private RefWatcher refWatcher;@Overridepublic void onCreate()