zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/3006857.html
Copyright © 2011-2022 走看看