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




  • 相关阅读:
    284. Peeking Iterator 光是看看下一个值的遍历
    339. Nested List Weight Sum 339.嵌套列表权重总和
    341. Flatten Nested List Iterator展开多层数组
    springcloud之配置中心服务化和高可用
    springcloud之配置中心git
    springcloud之熔断监控Hystrix Dashboard和Turbine
    springcloud之熔断器Hystrix
    springcloud之服务提供与调用
    springcloud之注册中心Eureka
    springcloud之大话springcloud
  • 原文地址:https://www.cnblogs.com/graceting/p/5034044.html
Copyright © 2011-2022 走看看