随笔

来源:互联网 发布:网络大v评论王宝强 编辑:程序博客网 时间:2024/05/16 16:58

AndroidManifest.xml

  • Activity 主窗口, 对应一个 Activity子类,  通过name 属性和子类挂钩, 如".HelloWorld". Activity 经常被用来当全屏窗口使用, 但是也可以作为浮动窗口或嵌套到其他的 Activity 中.

 

 

 

 

Activity的生命周期图(好久没画图了, visio2007挺好用的)

 

  • onCreate() 里设置所有的 "全局" 状态.
  • onDestroy() 里释放所有的资源.
  • onPause()) 在停止与用户交互前, 保存更改过的数据.
  • 当覆盖这些方法的时候, 务必记得先调用超类的方法. 如, super.onCreate(savedInstanceState)
  • 手动调用 Activity对象的 finish()方法, 代表这个Activity已运作完毕,当系统接收到这个命令时,即会关闭此Activity. 此时点击模拟器的返回(Back)键,并不会回到上一个Activity的画面.

 


 

      web 开发的时候, 有这样一种场景, 你必须选择一个人来进行操作, 操作的人很多, 我们把这些人放到一个弹出窗口中, 然后进行选择, 选择完毕以后, 我们关闭窗口, 返回结果, 把结果填充到原来的界面上.

      上述的类似操作, 很多人在项目中应该都碰到过, 为此, 我曾经对公司的架构师提出增加此场景的处理方案, 可惜, 人家不理会我. 而Android 的设计者是很人性化的, 他们理解这样的场景需求, 并为我们提供了方便的处理方案!!!! 那就是

       startActivityForResult(Intent intent, int requestCode);

       该方法第一个参数不用多说了, 第二个参数是一个整形, 自己定义, 是对该次请求的一个标识, 目标Activity 又不是只有你一个可以请求, 是吧! 所以有个标识对目标Activity 来说, 也可以认出请求的对象是张三还是李四; 并且, 请求者对目标Activity 的请求可以不只一个, 某种请求是需要一个名字, 另一个请求是需要一个性别等.

       当然, requestCode 是自己定义的, 我们很难确保它一定是唯一的, 这个就要看开发者自己的处理方式了.

 

  •        请求者Activity, 需要用 startActivityForResult() 替换 startActivity() 方法, 并且覆盖          

 

       protected void onActivityResult(int requestCode, int resultCode, Intent data)  


 

  • 目标Activity, 主要是通过调用方法 setResult(int resultCode, Intent data) 或者 setResult(int resultCode), 后者是不需要返回数据的时候使用, resultCode 可以是自定义的, 也可以在Activity 中有三种常量RESULT_CANCELED=0, RESULT_OK=-1, RESULT_FIRST_USER=1 中选择一种, 他们分别表示运行取消, 运行成功返回和用户自定义的返回码. 当用户按下返回键时, resultCode 就是RESULT_CANCELED, 在一些情况下也会返回 RESULT_CANCELED, 例如目标Activity崩溃了. RESULT_FIRST_USER 代表了用户自定义返回码的第一个, Android希望我们自定义的返回码都>=1.

 

 

 

 

 

    原创粉丝点击