• android知识点


    Android有四大组件:Activity、Service、Broadcast Receiver、Content Provider
    1、activity
    (1)一个Activity通常就是一个单独的屏幕(窗口)。
    (2)Activity之间通过Intent进行通信。
    (3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。
    2、service
    service用于在后台完成用户指定的操作。
    3、content provider
    android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

    4、broadcast receiver
    你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。

    Activity的四种启动模式
    Activity有四种启动模式 standard,singleTop,singleTask,singleInstance,这四种模式我们可以在清单文件的<Activity节点下通过android:launchMode来进行配置

    standard模式:在这种模式下,activity默认会进入启动它的activity所属的任务栈中。这也是默认的一种模式
    singleTop模式:栈顶复用模式。如果新activity位于任务栈的栈顶的时候,activity不会被重新创建,同时它的onNewIntent方法会被回调。
    singleTask模式:栈内复用模式。只要activity在一个栈中存在,那么多次启动此activity不会被重新创建单例,系统会回调onNewIntent。这种模式可以称为单例模式,只会存在一种,有则直接从栈中调用,没有则创建并且压入栈中
    singleInstance模式:单实例模式。这种模式的activity只能单独地位于一个任务栈中,这种与singleTask有点类似,其实也是有则直接调用,没有则创建并且放入栈中,只不过singleTask是可以和其他的Activity放在同一个栈中,singleInstance则是只会将创建的Activity放在一个栈中,并且这个栈中只会有这一个Activity实例

    Activity的简单生命周期流程为onCreate();→onStart();【注:此时Activity处于不可见状态】→onResume();【注:此时Activity处于运行状态】→onPause();【注:此时Activity处于暂停状态】→onStop();【注:此时Activity处于停滞状态】→onDestroy();【注:调用了此方法后Activity生命周期结束】
    其中当Activity正在重新启动的时候,从不可见变为可见的时候,会调用到onRestart();也就是说一个Activity包含七个生命周期流程

    Activity被其他Activity覆盖其上,系统会调用onPause()方法,暂停当前Activity的执行,若用户取消了覆盖,系统会调用onResume()方法,重新进入到运行状态。
    Activity跳转到了新的Activity界面或者被后台了或者锁屏时,系统会调用onPause();然后调用onStop();使Activity进入到停滞状态,如果重新回到了该Activity界面(上一个Activity或者从后台变为了前台时或者解开锁屏时),系统会调用onRestart();再调用onStart();最后调用onResume()方法使该Activity进入到运行状态
    当用户退出Activity时会调用onPause();然后调用onStop();最后调用onDestory();结束Activity生命周期
    当Activity中弹出dialog对话框的时候,Activity不会调用onPause();只有当Activity启动了dialog风格的Activity时才会调用
    当Activity是由于异常情况下终止的,系统会调用onSaveInstance来保存当前Activity状态,这个方法调用的时机是在onStop之前的,当Activity重新创建后,系统会调用onRestoreInstanceState,并且把Activity销毁时的onSaveInstanceState方法保存的bundle对象作为参数同时传递给onRestoreInstanceState和onCreate方法

     
  • 相关阅读:
    Eclipse项目上传和下载到码云上
    java.lang.IllegalArgumentException,java.util.zip.ZipException 解决办法
    #{}和${}的区别
    Lambda 表达式
    存储器的按字寻址和按字节寻址
    二叉树的三种遍历方式
    线性表和链表
    java泛型理解
    java字符输入输出流
    applet的生命周期
  • 原文地址:https://www.cnblogs.com/hua-sheng/p/13832735.html
Copyright © 2020-2023  润新知