zoukankan      html  css  js  c++  java
  • Activity初学乍练

    1.Activity的概念与Activity的生命周期图:

    注意事项:

    onPause()和onStop()被调用的前提是: 打开了一个新的Activity!而前者是旧Activity还可见的状态;后者是旧Activity已经不可见!

    2.Activity/ActionBarActivity/AppCompatActivity的区别:

    在开始讲解创建Activity之前要说下这三个的一个区别: Activity就不用说啦,后面这两个都是为了低版本兼容而提出的提出来的,他们都在v7包下, ActionBarActivity已被废弃,从名字就知道,ActionBar~,而在5.0后,被Google弃用了,现在用 ToolBar...而我们现在在Android Studio创建一个Activity默认继承的会是:AppCompatActivity! 当然你也可以只写Activity,不过AppCompatActivity给我们提供了一些新的东西而已! 两个选一个,Just you like~

    3.Activity的创建流程

    PS:

    好了,上面也说过,可以继承Activity和AppCompatActivity,只不过后者提供了一些新的东西而已! 另外,切记,Android中的四大组件,只要你定义了,无论你用没用,都要在AndroidManifest.xml对 这个组件进行声明,不然运行时程序会直接退出,报ClassNotFindException...

    4.onCreate()一个参数和两个参数的区别:

    相信用as的朋友在重写Act的onCreate()方法时会发现,这玩意有两个参数:

    可是正常的才只有一个参数啊:

    恩呢,这就是5.0给我们提供的新的方法,要用它,先要在配置文件中为我们的Activity设置一个属性:

    android:persistableMode="persistAcrossReboots"
    

    然后我们的Activity就拥有了持久化的能力了,一般我们会搭配另外两个方法来使用:

    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)
    public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)
    

    相信有些朋友对这两个方法名不陌生吧,前一个方法会在下述情形中被调用:

    1. 点击home键回到主页或长按后选择运行其他程序
    2. 按下电源键关闭屏幕
    3. 启动新的Activity
    4. 横竖屏切换时,肯定会执行,因为横竖屏切换的时候会先销毁Act,然后再重新创建 重要原则:当系统"未经你许可"时销毁了你的activity,则onSaveInstanceState会被系统调用, 这是系统的责任,因为它必须要提供一个机会让你保存你的数据(你可以保存也可以不保存)。

      而后一个方法,和onCreate同样可以从取出前者保存的数据: 一般是在onStart()和onResume()之间执行! 之所以有两个可以获取到保存数据的方法,是为了避免Act跳转而没有关闭, 然后不走onCreate()方法,而你又想取出保存数据~

      说回来: 说回这个Activity拥有了持久化的能力,增加的这个PersistableBundle参数令这些方法 拥有了系统关机后重启的数据恢复能力!!而且不影响我们其他的序列化操作,卧槽, 具体怎么实现的,暂时还不了解,可能是另外弄了个文件保存吧~!后面知道原理的话会告知下大家! 另外,API版本需要>=21,就是要5.0以上的版本才有效~

  • 相关阅读:
    TPO-17 C2 Reschedule part-time job in campus dining hall
    TPO-17 C1 Find materials for an opera paper
    TPO-16 C2 Reschedule the medieval history test
    D语言中调用C++的std::string遇到的问题分析
    D语言与C++做映射时需要注意的事情
    D语言与C一起编程时,不用同时写两个C的两个头文件的办法
    D语言使用dub编译ms-coff文件
    D语言VisualD中使用C/C++与D语言混合编程
    D语言 在ms-coff文件格式下使用DGUI库
    D语言中做图片转换
  • 原文地址:https://www.cnblogs.com/foxy/p/7659741.html
Copyright © 2011-2022 走看看