zoukankan      html  css  js  c++  java
  • Android开发--Activity

    一:Activity生命周期

    (1)Activity生命周期中的几种方法:

     protected void onCreate(Bundle savedInstanceState):

    protected void onStart():

    protected void onResume():

    protected void onPause():

    protected void onStop():

    protected void onRestart():

    protected void onDestory():

    (2)Activity生命周期中的四种状态:

    Active(Running)状态:Activity启动后,进入后进先出的Activity栈,并处于栈的最顶部,此时处于激活状态与用户进行交互,获得了用户的输入焦点;

    paused覆盖状态:被一个透明的或对话框形式的Activity覆盖,此时失去了焦点,不能与用户交互,依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但当系统处于极低内存的情况下,仍然可以杀死这个 Activity。

    Stoped停止状态:完全被另一个 Activity 覆盖是,它处于停止状态。它仍然保留所有的状态和成员信息。然而它不在为用户可见,所以它的窗口将被隐藏。如果其它地方需要内存,则系统经常会杀死这个 Activity。(home键按下)

    Killed杀死状态:被系统杀死回收或者没有被启动时处于  Killed 状态(按下返回键)


    (3)创建到销毁的执行过程:

    onCreate和onDestory对应。onStart和onStop对应,onResume和onPause对应!!!

    onCreate->onStart->onResume-> onPause->onStop->onDestory;

    按照其生命周期图,主要执行过程有7中形式,

    参见:http://blog.csdn.net/pku_android/article/details/7307625

    特别注意:onPause()->onResume()的执行过程,此时一般要用到Intent(意图)

    (4)总结

    一个Activity与一个LayOut对应,LayOut一般用XML文件生成,XML文件的命名必须是小写,当然,有时也可以不是XML文件,用代码生成一个动态的LayOut。

    XML文件生成工具:droiddraw

    好的建议:(1)建议在onCreate函数中尽量少写代码,把尽肯能多的东西放到onResume和那个自定义的初始化函数里去写,onResume这个函数被调用的几率是非常高的

    (2)onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息。

    onStart函数:注册一些变量。这些变量必须在Android Activity类在前台的时候才能够被响应。

    onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态。

    onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的调整。

    onStop函数:反注册在onStart函数中注册的变量。

    onDestory函数:反注册在onCreate函数中注册的变量。

    三:Activity间通信

    主Activity和子Acitivity通信的方式有很多种这里介绍两种最简单的方法。

    方法一:通过Intent来进行参数的传递,在Intent中有各种putXXX方法来存放各种参数,然后在子Activity接收到这个Intent时能够从这个Intent里取出这个参数,利用getIntent()。getXXXExtra()方法就可以了。

    方法二:当一个主Activity想从一个子Activity接受消息时可以使用StartActivityforResult方法,例如这样启动一个Activity,startActivityForResult(i, REQUEST_CODE); 然后在主Activity中的onActivityResult方法对requestCode进行判断来对子Android Activity类不同的返回处理不同的情况,另外子Activity也可以利用setResult方法来设置主Activity方法中的resultCode,这样主Activity也可以根据子Activity的不同的resultCode来处理不同的情况。

    四:Activity四种加载模式

    Activity有四种加载模式:

    • standard
    • singleTop
    • singleTask
    • singleInstance

    参见:http://www.cnblogs.com/-OYK/archive/2011/05/31/2064802.html




  • 相关阅读:
    OSCP Learning Notes Buffer Overflows(3)
    OSCP Learning Notes Buffer Overflows(5)
    OSCP Learning Notes Exploit(3)
    OSCP Learning Notes Exploit(4)
    OSCP Learning Notes Exploit(1)
    OSCP Learning Notes Netcat
    OSCP Learning Notes Buffer Overflows(4)
    OSCP Learning Notes Buffer Overflows(1)
    OSCP Learning Notes Exploit(2)
    C++格式化输出 Learner
  • 原文地址:https://www.cnblogs.com/graceting/p/5034044.html
Copyright © 2011-2022 走看看