Android 新手从头开始摸索的第一课

我本身就是一个学计算机专业的,但大家都知道学校基本不会教移动端开发的相关知识,我本身也是慢慢摸索学习,最后现在从事android开发的工作,虽然现在算不上资深,也算是有一定经验了,也想说说看android开始入门的时候应该学习哪些知识。

我们在android studio(eclipse应该没人再用了吧)新建一个项目最先看到的当然是MainActivity了,今天就想说一下activity,activity是android开发肯定接触最多的,每天都要跟activity打交道。可以说activity是android的基础,也是核心。

关于activity,首先要说的就是activity的生命周期,什么是生命周期?(随口说两句:我最开始学习的时候根本不知道生命周期是什么,也不知道怎么用,心想所有代码就写在onCreate里面就行了)。我们对activity的印象就是页面,app上的每一个页面代表这一个activity,基本上可以这么理解(暂时不考虑fragment等)。所以一个页面从渲染开始到跳转到下一个页面,再到在内存中被销毁等这样一个过程叫做生命周期,那我们来看看一个activity的具体生命周期:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

 @Override
    protected void onStart() {
        super.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onStop() {
        super.onStop();
    }

    @Override
    protected void onRestart() {
        super.onRestart();
    }

    @Override
    protected void onPause() {
        super.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
基本上activity的生命周期就是以上六个方法,先贴一张经典的图:

activity生命周期

由上图来看,简单介绍一下每个方法的触发时机:

  1. 启动一个activity的时候调用流程:
    onCreate —–> onStart —–> onResume
  2. 按了home键: onPause —–> onStop
  3. 按了home键,再返回当前activity: onRestart —–> onStart —–> onResume
  4. A activity跳转到B activity : A onPause —–> B onCreate —–> B onStart
    —–> B onResume —–> A onStop (当B activity不是透明页时,会执行onStop,反之则不执行)
  5. 点back键 : onPause —–> onStop —–> onDestroy

基本上activity的正常生命周期就是这样,能解决初期开发中遇到的大部分问题,还有一些特殊化的生命周期可以放到后面再聊,包括启动模式,横竖屏切换等。

介绍一个出来相对来说比较新的东西:

        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

            }

            @Override
            public void onActivityStarted(Activity activity) {

            }

            @Override
            public void onActivityResumed(Activity activity) {

            }

            @Override
            public void onActivityPaused(Activity activity) {

            }

            @Override
            public void onActivityStopped(Activity activity) {

            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

            }

            @Override
            public void onActivityDestroyed(Activity activity) {

            }
        });

一个app里面基本都有很多activity,以前只能在activity里面监测对应的生命周期,而现在使用registerActivityLifecycleCallbacks()这个方法,只要能拿到application context,就能监测所有activity的生命周期,可以在这里面做一些事情,据我所知,一些数据分析的厂商在监测日活等事件时,就使用了此方法。

总结一下:

  1. onCreate: activity被创建时的回调,应在这里渲染布局,初始化数据。
  2. onStart: activity 正在被创建,还未显示。
  3. onResume: activity创建完成,用户可进行交互。
  4. onPause: activity正在被停止。
  5. onStop: activity 不可见。
  6. onRestart: activity正在重启。
  7. onDestroy: activity被销毁,此时应释放可能会导致内存泄漏的资源。
经典的andriod入门必学一,课堂复习 1,什么是安卓? 一款开源的基于linux的操作系统 2,安卓的体系结构 上层:基于java的应用程序开发 中间层:虚拟机Dalvik 底层:基于linux的C++编程 3,安卓的开发环境(IDE) 1,eclipse adt:让eclipse具备开发安卓的功能,是一个插件 android sdk:安卓开发工具包19.0 2,AndroidStudio android sdk:安卓开发工具包 22.0 二,安卓的工程目录 scr/包名/Activity:主要存放代码的目录 gen:(Generated Java Files)自动生成的java文件 assets:资产,存放大型数据文件,Html,css,音频,视频,大型的图片等文件 bin:程序编译完成之后生成的文件存放的目录,也是系统自动生成的 libs:存放第三方的jar包的目录 res:resource资源,图片,声音,文字,视图等等 drawable:图片资源 layout:布局视图文件存放的目录 menu:菜单 values:存放数值类型的资源。比如尺寸,文字,样式 AndroidManifest.xml:安卓app的配置,包括sdk,版本,四大组件的注册,权限等等 三,安卓工程的创建 1,点了一个花菜(创建了一个安卓应用程序的工程) 2,指派一名厨师(创建一个Activity必须继承Activity组件) 3,注册厨师(在AndroidMenifest.xml中注册Activity) 4,构思食材(在res/layout中,创建一个视图) 5, 找老王要菜,老王给了一个单子(在gen/R.java中生成的地址) 6,将食材拿到厨房中(在Activity中,创建onCreate方法,并且在其中,使用setContentView显示的视图) 7,做菜(就是通过findViewById找到对应的控件,执行操作) src:代码存放的地方 gen:自动生成控件的地址R.java res/layout:布局的设计图(通过setContentView才可以在Activity中显示) AndroidMenifest.xml目录,用于注册Activity 四,布局 LinearLayout:方向:(横和竖) 任何的控件,任何的布局都需要 layout_height layout_width 用于确定元素在当前空间中的大小 match_parent:和父类容器一样大 wrap_content:自己多大,就占多大空间 用于请求光标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值