Android 四大组件

Android 的四大组件:

名称 作用
Activity 活动,UI页面,与一个用户交互
Service 服务,无页面,在后台运行
Broadcast 广播
ContentProvider 内容提供者,主要与提供应用之间交互数据

1. Activity 展示UI与用户交互

Activity是由Activity栈管理的,Activity有四种状态:

状态名称 描述
运行状态 当Activity位于栈顶时,此时正好处
于屏幕最前方,此时处于运行状态
暂停状态 当Activity失去了焦点但仍然对用于可
见(如栈顶的Activity是透明的或者栈顶Activity并
不是铺满整个手机屏幕)
停止状态 当Activity被其他Activity完全遮挡,此时此Activity对
用户不可见,此时处于
销毁状态 当Activity由于人为或
系统原因(如低内存等)被销毁,此时处于

在每个不同的状态阶段,Adnroid系统对Activity内相应的方法进行了回调。因此,我们在程序中写Activity时,一般都是继承Activity类并重写相应的回调方法。

Android 四大组件_第1张图片
生命周期

一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。称之为entire lifetime。

回调方法 是否可见
onCreate() visible lifetime
onStart() visible lifetime
onResume() foreground lifetime
onPause() visible lifetime
onStop() invisible lifetime
onDestroy invisible lifetime

页面跳转时生命周期的变化:
A->B:
将依次执行A:onPause -> B:onCreate -> B:onStart -> B:onResume -> A:onStop。
Back键:
将依次执行B:onPause -> A:onRestart -> A:onStart -> A:onResume -> B:onStop -> B:onDestroy。
此时如果按下Back键,系统返回到桌面,并依次执行A:onPause -> A:onStop -> A:onDestroy。
此时如果按下Home键(非长按),系统返回到桌面,并依次执行A:onPause -> A:onStop。由此可见,Back键和Home键主要区别在于是否会执行onDestroy。

//通过重写按下Back键的回调函数,转成Home键的效果即可。

@Override
public void onBackPressed() {
    Intent home = new Intent(Intent.ACTION_MAIN);
    home.addCategory(Intent.CATEGORY_HOME);
    startActivity(home);
}


activity.moveTaskToBack(true);
//moveTaskToBack()此方法直接将当前Activity所在的Task移到后台,同时保留activity顺序和状态。

信息来源:
http://www.cnblogs.com/lwbqqyumidi/p/3769113.html
http://www.cnblogs.com/fansen/p/5667450.html
http://blog.csdn.net/feiduclear_up/article/details/45971119

你可能感兴趣的:(Android 四大组件)