A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

泄密:黑马Android内部压轴技术面连载现世(一)

涨薪机密——潮流新技术、新框架资源以后不定期更新,  


   第一篇先来点开胃小菜,更猛烈的等着你哦
1. 什么是Activity?
四大组件之一,一般的,一个用户交互界面对应一个activity
        setContentView() ,// 要显示的布局
        button.setOnclickLinstener{
        },
       activity 是Context的子类,同时实现了window.callback和keyevent.callback, 可以处理与窗体用户交互的事件。

       我开发常用的的有FragmentActivitiy,ListActivity  , PreferenceActivity ,TabAcitivty等…
       如果界面有共同的特点或者功能的时候,还会自己定义一个BaseActivity。

2. 请描述一下Activity 生命周期。
       生命周期描述的是一个类 从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法。在这个过程中 会针对不同的生命阶段会调用不同的方法。
       Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause。
       其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;
      onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause。

       这6个方法是相对应的,那么就只剩下一个onRestart方法了,这个方法在什么时候调用呢?
      答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法;如果被onDestroy了,则是调用onCreate方法。

      最后讲自己项目中的经验,比如说手机卫士每次进入某个界面的时候都要看到最新的数据,这个刷新列表的操作 就放在onStart()的方法里面.这样保证每次用户看到的数据都是最新的。
      多媒体播放, 播放来电话. onStop() 视频, 视频声音设置为0 , 记录视频播放的位置 mediaplayer.pause();
       onStart() 根据保存的状态恢复现场.mediaplayer.start();
      在读文档的时候 还发现 activity还有两个方法onPostResume() 和 OnPostCreate()这两个生命周期的方法,不过开发的时候没有用到过。

3. 两个Activity之间跳转时必然会执行的是哪几个方法。
       一般情况比如说有两个activity,分别叫A,B,当在A里面激活B组件的时候, A 会调用 onPause()方法,然后B 调用onCreate() ,onStart(), OnResume() ,这个时候B覆盖了窗体, A会调用onStop()方法。 如果B呢是个透明的,或者是对话框的样式, 就不会调用onStop()方法。

4. 横竖屏切换时候Activity的生命周期。      
       这个生命周期跟清单文件里的配置有关系
       1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期。默认首先销毁当前activity,然后重新加载。
       2、设置Activityandroid:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。
       游戏开发中, 屏幕的朝向都是写死的,横竖屏切换的时候,如果有弹窗会被销毁。


其他精华资源推荐:

Android是选择自学还是选择培训?


61 个回复

倒序浏览
极速围观中
回复 使用道具 举报
围观  围观  围观
回复 使用道具 举报
围观 围观 围观
回复 使用道具 举报
围观了,Android的也可以学习学习啊,哈哈,分分钟的事情嘛
回复 使用道具 举报
围观 围观 围观
回复 使用道具 举报
这么牛!配图666
回复 使用道具 举报
不错,说的挺详细,学会了
回复 使用道具 举报
加油加油各位
回复 使用道具 举报
小伙伴们 快来围观,我擦 我的小伙伴们呢@@@@@
回复 使用道具 举报

java

嗯。              
回复 使用道具 举报
支持,都是总结的精华
回复 使用道具 举报
我是来顶贴的,顺便签个到
回复 使用道具 举报
离学到这里还好远啊
回复 使用道具 举报
我是来顶贴的,顺便签个到
回复 使用道具 举报
cuisq 中级黑马 2016-6-14 07:51:46
16#
这个到第几个月开始学的
回复 使用道具 举报
equals 和==的区别:==可以比较引用数据类型,也可以比较基础数据类型;equals只能比较引用数据类型,重写方法
回复 使用道具 举报
告诉大家,匿名内部类有面试题,记得去看哦
回复 使用道具 举报
hope si a good thing                               《肖申克的救赎》
回复 使用道具 举报
好东东,收藏!!!
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马