Android学习指南

一、理解ActivityActivity是Android程序的4大组件之一。Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。

下面看一下Activity类的继承关系:

image

二、理解Activity的生命周期手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。在android中Activity有四种基本状态:1、Running位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。2、Paused当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。3、Stop当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。4、KilledActivity被系统杀死或者跟本没启动时就是Killed状态。我们下面看一下Activity的生命周期:activity_lifecycle下面是上图的简单翻译版本:

activity_lifecycleActivity栈:Android通过Activity栈的方式来管理Activity。image正在运行的Activity 处在在栈的最顶端,它是运行状态的;当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。三.实例:观察翻转屏幕导致的Activity状态变化Activity类中定义了和生命周期相关的一些方法,这些方法会在状态改变时被调用,譬如创建时调用的方法onCreate()。因此我们可以写一个程序,在程序的每个一个方法中写注释,然后看看运行时注释的打印顺序来跟踪Activity的状态变化。本实例的具体视频创建及演示过程可以参见视频:观察翻转屏幕导致的Activity状态变化。

package test.example.androidtest;


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class MainActivity extends Activity {
String tag ="[MainActivityLife]";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(tag, "onCreate");
}


@Override
public void onStart(){
super.onStart();
Log.i(tag, "onStart");
}
@Override
public void onRestart(){
super.onRestart();
Log.i(tag, "onRestart");
}


@Override
public void onPause(){
super.onPause();
Log.i(tag, "onPause");
}


@Override
public void onResume(){
super.onResume();
Log.i(tag, "onResume");
}


@Override
public void onStop(){
super.onStop();
Log.i(tag, "onStop");
}


@Override
public void onDestroy(){
super.onDestroy();
Log.i(tag, "onDestroy");
}
}

然后调出LogCat工具,来观察程序的运行细节。通过LogCat的过滤器我们可以看到程序启动、屏幕翻转、按后退键程序退出的过程,这有助于我们验证刚才所学的知识。








我们可以看到屏幕翻转时,Android系统把ActivityLife这个Activity先杀死(具体顺序是先暂停、后关闭再销毁),然后再启动(具体顺序是先创建,后启动再恢复)。通过这个例子我们也清楚的看到了,是Android系统而不是程序员在控制Activity的生命周期。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值