安卓学习笔记之Activity(一)

来源:互联网 发布:用友软件防伪查询 编辑:程序博客网 时间:2024/05/21 15:41

**

安卓四大组件之Activity

**

1.介绍

**

Activity的出现无处不在,从手机开始启动的第一个页面的都是Activity。主要用于可见的状态与用户进行交互。好比一张纸,我们需要用代码这只“笔”来描绘一些信息告诉读者,这张纸里面有些什么内容和需要操作什么东西。总的来说就是能看到的基本上和Activity。如果有什么错误的地方,希望大家指出。感激不尽。
既然作为操作系统的组件,那么每个组件都会有独立的生命周期。


**

2. 生命周期

**
在Android的官方文档我们能够看到这样的一张图片:
这里写图片描述

简单看做是,系统会调用如下几个方法。
OnCreate()–>OnStart()–>OnResume()–>OnPause()–>OnStop()–>OnDestroy()

Activity拥有四种基本状态
1*.Active/Running*
一个Activity启动入栈(装载Activity的容器),有先进先出的特点。它会显示屏幕的最前端(Activity栈顶)此时它是处于和用户交互的激活状态,叫做活动状态或者运行状态
2. Paused
暂停状态,被一个新的非全屏的Activity或者一个透明的Activity被放到栈顶,比如你用手机浏览网页的时候,突然来了一个电话,那么这个activity就是处于paused的状态,但是它依然是保持活力的。
3. Stopped
停止状态,如果一个activity完全为另一个Activity完全覆盖,它不可见,所以它的窗口被隐藏,当系统内存吃紧的时候,停止状态的Activity会被强行终止掉
4. Killed
杀死状态,顾名思义,被系统回收,意味着系统内存吃紧的时候,或者你不需要用这个Activity的时候,系统会直接终止它的进程。

好了。那么系统是如何运作Activity的呢 ?
那就是上面我们说的几个方法了。
当我们首次使用ADT/Android studio创建安卓工程的时候,我们创建一个工程的时候都会默认创建一个OnCreate方法并调用它。onCreate

我们点击运行的时候,那么就会弹出Hello world。
这里写图片描述

那我们添加剩余的方法.

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    protected void onStart() {        Log.i("dd","onStart");        super.onStart();    }    @Override    protected void onPause() {        Log.i("dd","onPause");        super.onPause();    }    @Override    protected void onResume() {        Log.i("dd","onResume");        super.onResume();    }    @Override    protected void onStop() {        Log.i("dd","onStop");        super.onStop();    }    @Override    protected void onDestroy() {        Log.i("dd","onDestroy");        super.onDestroy();    }}

这里写图片描述

当我按下返回这个按钮的时候,退出到主界面。

这里写图片描述

但是当我按下,Home这个按钮的时候,
这里写图片描述

这次并没有销毁,而是在后台运行着。运行onPause和onStop这两个方法,
当我点回去的时候发现,
这里写图片描述

继续运行onStart()和onResume()方法。最后不用的时候会自动销毁,运行onDestroy()


3.如何启动一个Activity?

要启动一个Activity用到的就是Intent这个类,我们先创建一个MyActivity类并在Manifest文件里注册

public class MyActivity extends Activity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }}

然后通过Intent 创建一个对象,在Intent构造方法中分别传入,Context,还有对应想跳转另一个的Activity的类就行了。最后调用startActivity()将Intent的对象传进去就行了。

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Intent intent=new Intent(this,MyActivity.class);        startActivity(intent);    }
原创粉丝点击