Android开发笔记01:文件组织、Intent调用和Activity的生命周期

目录

1 AndriodStudio入门基础

1.1 AndroidStudio文件结构

1.1.1 Project模式

1.1.2 Packages模式

1.1.3 Android模式

1.2 信息输出方式

2 Intent的调用模式

2.1 显式调用模式

2.2 隐式调用

3 Activity的生命周期

3.1 一个Activity时的生命周期分析

3.2 两个Activity时的生命周期分析


使用小技巧:

  • Alter+Enter自动import class
  • 查询AndroidStudio的SDK版本
    • 方法1:点击File->Setting->System Settings --> Android SDK
    • 方法2:点击右上角SDK Manager(黄色箭头处)

1 AndriodStudio入门基础

程序设计时,通过java代码控制界面,使用xml代码定义界面

1.1 AndroidStudio文件结构

在文件列表上有以下几种组织方式:

这里写图片描写叙述

这里重点介绍Project模式、Packages模式和Android模式

1.1.1 Project模式

也就是工程视图模式,其组织结构如下所示:

这里写图片描写叙述

1.1.2 Packages模式

这里写图片描写叙述

该视图下和Project最大的差别就是隐藏了中的配置文件,属性文件和系统自身的文件夹.
仅仅是显示了当前的Module列表和Module以下的文件夹,文件.

1.1.3 Android模式

这里写图片描写叙述

Android视图自己主动把它们合并到一起,表示这几个文件的作用是一样的,仅仅只是会由于设备的不同,而引用不同文件夹下的文件;Android视图最大的优点就是去掉一些我们本身不关心的文件和文件夹.(配置,属性文件等)而且把一些资源文件,源文件非常清晰的合并在一起.隐藏了一些自己主动自己主动生成的文件和文件夹(比如R文件等)能够让我们更方法的管理整个项目/module.

Module文件夹下分三个子文件夹,分别相应mainfests文件,java源代码,res资源文件夹.

Gradle脚本文件夹下有多个Gradle文件和属性文件;看其后面的提示,从上到下分别为:项目空间的gradle配置文件,第一个module和第二个module配置文件。gralde属性文件,设置文件,以及本地SDK路径属性文件

参考文章链接:https://segmentfault.com/a/1190000002963895

1.2 信息输出方式

可以像java一样直接使用System.out.println()输出信息到控制台

也可以使用Log按照类型输出提示信息,主要有以下几种:

函数描述
Log.i(tag, msg)输出信息提示,参数1为信息标签,参数2为信息的具体内容
Log.e(tag, msg)输出错误提示,参数1为错误标签,参数2为错误的具体内容
Log.d(tag, msg)输出调试提示,参数1为调试标签,参数2为调试的具体内容
Log.w(tag, msg)输出警告提示,参数1为警告标签,参数2为警告的具体内容
......

2 Intent的调用模式

当我们要实现一个Activity向另一个Activity跳转时,需要调用Intent来实现,其调用方式有隐式调用和显式调用两种模式,本文对此进行总结。

首先创建两个Activity,分别设置其名称为MainActivity和SecondActivity,其AndroidManifest.xml文件形式如下:

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".SecondActivity">
            <intent-filter>
                <action android:name="action.NewAction"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>

项目文件结构如下:

2.1 显式调用模式

直接调用模式是根据类名进行调用,要么使用Activity的name,要么使用java类的名字

方式1:通过设置类的方式调用显示

Intent secIntent = new Intent(this, SecondActivity.class);
this.startActivity(secIntent);

方式2:通过类名调用

Intent secIntent2 = new Intent();
secIntent2.setClassName(this, "com.gcdxed.main_acitibity.SecondActivity");
startActivity(secIntent2);

方式3:通过组件名称调用

Intent secIntent3 = new Intent();
ComponentName cName = new ComponentName(this, SecondActivity.class);
secIntent3.setComponent(cName);
startActivity(secIntent3);

2.2 隐式调用

Intent secIntent4 = new Intent();
secIntent4.setAction("action.NewAction");
startActivity(secIntent4);

但是要注意,当程序中有两个相同的action时,运行时会提示用户选择使用那哪个Activity

3 Activity的生命周期

3.1 一个Activity时的生命周期分析

  涉及以下7个函数:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("activityStatus", "onCreate: MainActivity");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("activityStatus", "onStart: MainActivity");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("activityStatus", "onRestart: MainActivity");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e("activityStatus", "onResume: MainActivity");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("activityStatus", "onPause: MainActivity");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("activityStatus", "onStop: MainActivity");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("activityStatus", "onDestroy: MainActivity");
    }

当程序启动调试时,调用以下三个函数:

回到桌面看不到该程序时,执行如下两个函数:

点击正在执行的程序,将程序回复回来时,执行如下函数:

将程序彻底关掉时:

执行流程如下:

3.2 两个Activity时的生命周期分析

跳转执行流程推演:

启动程序,显示第一个Activity:

点击Send按钮,显示第二个Activity,当第二个完全显示后,才会调用第一个的OnStop

点击关闭第二个窗体的按钮,第二个界面消失,跳转会第一个界面

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小薛引路

喜欢的读者,可以打赏鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值