Android基础——四大组件之Activity

这几天会优先整理出四大组件的部分,之后再写其他的。先从Activity开始

Activity

  1. Xmind
    ActivityXmind

  2. 先扯点别的

    • 推荐一个火狐浏览器,用来看AndroidAPI文档,开发必备。
    • 首先,API文档在SDK里:D:\SDK\docs\index.html
      用火狐浏览器打开,火狐浏览器设置为脱机工作,这样就能够在里面搜索你想要的API了:
      APIsearch

    • 点击第一条,android.app.Activity,查看其API
      Activity
      其实从这里也能看出Android的一些框架,除去Java部分,android的根类可以说是Context类,上下文属性这里也单独介绍一下,之后经常用到,却并不明白他存在的意义。参考至:【qingjuning的博客】

      1. 结构图
        Context结构图
      2. 更具体的请转到链接【qingjuning的博客】
      3. 说一点我自己的理解:其实在javaweb的开发中更多的使用到了这个Context,作为一个体系的基类,他在Android中的功能体现并不明显,但在使用了之后也能理解,他在使用时,是携带了其代表的对象的信息的。通过他也能获取其对应的子类对象的内容属性等,作为一个父类引用子类对象的应用场景。

  3. 这里我们先引用API里的一张图:
    Activity生命周期

    • Activity生命周期:在Xmind里也已经概述了他的三种状态以及7个阶段,为了加深理解先来段代码压压惊:

      @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              Log.d("tag","onCreate");
          }
          @Override
          protected void onStart() {
              super.onStart();
              Log.d("tag","onStart");
          }
          @Override
          protected void onResume() {
              super.onResume();
              Log.d("tag","onResume");
          }
          @Override
          protected void onPause() {
              super.onPause();
              Log.d("tag","onPause");
          }
          @Override
          protected void onStop() {
              super.onStop();
              Log.d("tag","onStop");
          }
          @Override
          protected void onDestroy() {
              super.onDestroy();
              Log.d("tag","onDestroy");
          }
          @Override
          protected void onRestart() {
              super.onRestart();
              Log.d("tag","onRestart");
          }

      这里直接新创建一个module,在MainActivity里覆写这些方法,也就是Activity的各个阶段,运行之。。

      1. 开启应用时:
        Activity生命周期1
        Activity被创建,开启,继续执行。。进入running状态
      2. 点击home键
        Activity生命周期2
        点击Home键并未执行onDestroy方法,而是只执行停止而后进入Stopped状态。
      3. 重新点击应用进入界面
        Activity生命周期3
        当重新点击应用进入时,原本并未被销毁的应用将被唤醒执行onRestart方法,再调用到onStart方法,再执行onResume进入running状态
      4. 点击back
        Activity生命周期4
        而点击back键不同,将会先停止之后执行onDestroy方法。
      5. 这就是Activity整个的生命周期,只要记住这7个方法,以及他们对应的执行顺序与状态即可。
  4. Activity的跳转方式

    1. 隐式跳转

      • 创建新module,并创建一个SecondActivity的类以及他的布局文件AndroidManifest.xml:

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

        public class SecondActivity extends Activity {
                    @Override
            protected void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  Toast.makeText(this, "这是SecondActivity", Toast.LENGTH_SHORT).show();
            }
        }
      • MainActivity:

        public void Implicit(View view){
            Intent intent = new Intent();
            intent.setAction("SecondActivity");
            startActivity(intent);
        }
      • 在activity_main里绑定跳转按键事件:

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="Implicit"
            android:text="second"
            />
      • 首先添加一个SecondActivity类,创建Activity清单文件注册该页面activity并且为其绑定事件,以及添加Default信息,然后为MainActivity添加跳转所需的按键,并为这个按键绑定隐式跳转的点击事件,在MainActivity实现这个事件,事件内创建Intent意图,为意图添加Action,这个事件必须与清单文件中注册的名字相同,才能在跳转时进行事件匹配然后找到目标跳转。
        这里跳转的是本应用内的新Activity,而隐式跳转能够跳转其他应用以及系统应用等,只要注册事件,并添加这个事件即可。

    2. 显示跳转

      • 依旧在本应用内进行,先创建一个ThirdActivity类:

            public class ThirdActivity extends Activity {
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    Toast.makeText(this, "这是ThirdActivity", Toast.LENGTH_SHORT).show();
                }
            }
      • 然后是清单文件:

        <activity android:name=".ThirdActivity"/>
      • MainActivity:

         public void Explicit(View view){
                             Intent intent = new Intent();
                             intent.setClass(this,ThirdActivity.class);
                             startActivity(intent);
                         }
      • activity_main也同样绑定一个按键,以及按键事件Explicit,显式跳转不需要添加事件,而是直接在Intent意图中添加对应的class文件直接指向那个activity,但这样的跳转至局限在本应用内,无法跳转至外部应用。

  5. 至于最后一个启动方式的部分,Xmind的概括已经足够了,在这之前只需要了解过栈内存的童鞋应该没有问题,很容易理解的内容。


Activity内容偏多点,写的有点慢,最近会继续挑几天把四大组件都整理出来。
未完待续。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值