• Activity小结


    1,任务。一个应用程序整体看作一个task;就是用栈的方式组织一系列activity的集合,新加入的activity是位于栈顶的。

    2,activity的生命周期

    正常启动的调用顺序:oncreate->onstart(可见)->onresume(可见可交互);在结束时候的调用顺序是onPause(可见不可交互)->onStop(不可见)->onDestroy。

    在被停止的时候分为两种情况,如果先出的activity是全屏的那么顺序是onpause->onStop。(调用finsh方法或者内存不够的时候才会ondestory);恢复的时候是onStart->onResume

    如果先出的activity是对话框或者是透明形式,那么顺序是onPause,回复的时候是onResume。

    3,activity中的数据传递

    可以通过bundle对象传递各种基本类型,如果想要传递对象,需要对象对应的类实现序列化接口或者Parcelable接口

    如果需要在activiy之间回传数据,可以通过startActivityForResult方法启动一个activity,在启动activity的onfinish方法中通过setResult方法设置返回值,并且提供一个返回码,在第一个activity中通过重载onActivityResult方法来获得回传结果。

    4,activity的加载模式

    一般调用activity的时候,除了结束栈顶的activity来显示下一个activity外,只能创建新的activity。这是默认的stardard加载模式。activity的加载模式可以通过配置文件中的android:launchMode节点进行设置。

    除此之外,还有singleTop加载模式,不是每次都创建新实例,如果原来的activity已经位于栈顶那么就不会创建新实例。

    singleTask仅仅创建一个实例,不过依旧存在于原来的task中。

    singleInstance也是仅仅创建一个实例,创建的activity总是位于顶部堆栈,该activity独占一个task。其他activity不能存在于这个task。如同加了FLAG_ACTIVITY_NEW_TASK参数。

    intent利用category和data启动activity,

    category与data的匹配。

    二者都是使得intent的意图更加明确,利用category进行匹配的时候,intent对象中的全部category一定都要在intentfilter对象中存在,而intentfilter中的category可以比intent对象中的category多。

    利用data进行intent匹配主要用于匹配intent中的uri。

  • 相关阅读:
    Git工具简介
    Windows10搭建开发环境----Maven工具安装
    SpringBoot----01.SpringBoot基本配置
    创建一个SpringBoot项目
    软件工程----02. 需求分析
    软件工程----01. 软件工程简介
    JavaSE----11.Java 内部类
    JavaSE----10.Java 面向对象
    JavaSE----09.Java 数组
    前端面试总结
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/3006857.html
Copyright © 2020-2023  润新知