《第一行代码》2章 Activity生命周期理解

  1. 启动模式 中singleTask  的理解,举个例子,2个activity  firstActivity second Activity, 点一个切换到第二个,再点第一个切换到第一个,这个时候 firstActivity 是reStart, 而不创建,而secondActivity会销毁,因为它在栈的最上边,firstActivity把它替换掉,所以就onDestroy;

    只要不再显示就会执行onStop(),没有销毁就会经历onRestart(),onStart()重新变得可见。

  2. 比较好的演示生命周期的例子,可以很明显的看到各个活动的创建,停止,销毁,重新启动整个过程,只用一个过滤器就能区分。

    package com.example.activitytest;

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;

    public class BaseActivity extends Activity {

    @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            Log.d("BaseActivity","onCreate"+getClass().getSimpleName());
            ActivityCollector.addActivity(this);//static 方法不用new 来实例化对象
        }
        
        @Override
        protected void onDestroy(){
            super.onDestroy();
            ActivityCollector.removeActivity(this);
            Log.d("BaseActivity","onDestroy"+getClass().getSimpleName());//显示那个活动呗销魂
        }
        @Override
        protected void onStop(){
            super.onStop();
            Log.d("BaseActivity","onStop"+getClass().getSimpleName());
        }
        @Override
        protected void onRestart(){
            super.onRestart();
            Log.d("BaseActivity","onRestart"+getClass().getSimpleName());
        }
        @Override
        protected void onStart(){
            super.onStart();
            Log.d("BaseActivity","onStart"+getClass().getSimpleName());
        }

    }

    让其他Activity 都继承BaseActivity,因为其他的Activity都会super.onCreate(),super.onStop(),super.onDestroy(),就会先调用BaseActivity中的相关内容;

  3. 几个小技巧:Log.d("BaseActivity","onCreate"+getClass().getSimpleName()); 得到类名;

    Log.d("SecondActivity","Task ID is"+getTaskId());//得到任务ID

时间: 2024-10-13 22:24:29

《第一行代码》2章 Activity生命周期理解的相关文章

《第一行代码》2day~Activity

对应第二章 直观浅显的认识Activity一些小的细节: Activity生命周期的理解: Activity 的暂停是点击 返回到主界面: 使用Menu 需要把标题栏显示出来,即注释掉 //requestWindowFeature(Window.FEATURE_NO_TITLE);//要使用Menu 注释掉这句         setContentView(R.layout.first_layout); 每个Intent可以指定一个action,但可以指定多个category; <activit

android第一行代码-2.activity基本用法

摘要: 本节主要涉及到的有activity的创建,标题栏隐藏,button绑定方法(toast的使用),menu使用,活动销毁 1.activity的创建跟注册 创建: public class TestActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layou

第一行代码笔记之——Activity启动模式

1.如何修改Activity启动模式 通过Manifest来修改Activity启动模式. <activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.ac

Android应用开发(二):Activity生命周期剖析以及如何启动新的Activity或网页

本文讲述组件Activity的相关知识,主要包括如何启动一个Activity.如何打开一个网页,最后解析Activity的生命周期相关知识. 1.如何启动一个Activity (1).新建一个Activity 要启动一个新的Activity,就必须先创建一个新的Activity,Android Studio可以直接创建Activity而不需要一行一行的敲代码,这就是前面所说的采用Android Studio平台的好处之一. 具体代码如下: package edu.fred.hqu.android

《第一行代码:Android》学习笔记:Activity生命周期

<第一行代码:Android> 郭霖(著) Activity所在的栈为后进先出(Last In First Out)结构. Activity状态 运行状态(S1): 该Activity处于与User交互的状态,即是位于栈顶的Activity. 系统一般不考虑回收该处内存. 暂停状态(S2): Activity不再处于栈顶(Another activity comes in front of the activity),但仍然是可见的. 系统只有在内存极低时才考虑回收内存. 停止状态(S3):

20172327 2017-2018-2 《第一行代码Android》第一章学习总结

学号 2017-2018-2 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等. 2.系统运行底层 - 通过一些C/C++库来为Android系统提供了主要的特性支持 库名 功能 SQLite库 提供数据库的支持 OpenGL/ES库 提供3D绘图支持 Webkit

《第一行代码:Android》学习笔记:Activity &amp; Intent

<第一行代码:Android> 郭霖(著) 2.2 Activity的基本用法 隐藏标题栏 在AndroidManifest.xml中配置,作为全局配置,在所有Activity范围内生效 android:theme="@android:style/Theme.NoTitleBar" 在代码中配置,必须在setContentView()前调用该方法,只在当前Activity生效 requestWindowFeature(Window.FEATURE_NO_TITLE); 在s

第一章:开启启程你的第一行代码

前言: 其实我是认为视频比书本学的更快,看书是多么无趣, 有人说培训机构的学生失去了自学能力,的确如此 不管是视频还是资料我认为学会技能使用方法就行了 (还是买了第一行代码,一起学习学习吧!有颜色代表重点内容) 目录: 1.1 了解全貌,Android王国简介 1.1.1 安卓系统架构 1.1.2 安卓已经发布的版本 1.13 安卓应用开发特色 1.2 手把手搭建开发环境 1.2.1准备需要的环境 1.2.2搭建开发环境 1.3 创建你的一个Android项目 1.3.1创建Hello Worl

GitHub从小白到精通(第四章 提交第一行代码)

之前的这篇文章「从0开始学习 GitHub 系列之「Git速成」」相信大家都已经对 Git 的基本操作熟悉了,但是这篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作,教你们向 GitHub 上提交你们的第一行代码! 1. SSH 你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码.仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代码,那么 GitHub 上的项目岂不乱了套了,