Android Activity中onStart()和onResume()的区别分析

时间:2021-09-02 07:52:10

本文分析了Android Activity中onStart()和onResume()的区别。分享给大家供大家参考,具体如下:

首先你要知道Activity的四种状态

Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态

Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互

oped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped 状态

Killed Activity 被系统杀死回收或者没有被启动时处于 Killed 状态

分析:

protected void onStart() 该方法在 onCreate() 方法之后被调用,或者在 Activity 从 Stop 状态转换为 Active 状态时被调用,一般执行了onStart()后就执行onResume()。

protected void onResume() 在 Activity 从 Pause 状态转换到 Active 状态时被调用。

onResume是activity获得用户焦点,在与用户交互

onStart是activity用户可见,包括有一个activity在他上面,但没有将它完全覆盖,用户可以看到部分activity但不能与它交互。

补充:Android Activity中的六个主要函数

Android中一个Activity一般都需要实现六个函数:

onCreate(), onStart(), onResume(),onPause(),onStop(),onDestroy().

1. onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息。

2. onStart函数:注册一些变量。这些变量必须在Android Activity类在前台的时候才能够被响应。

3. onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态。

4. onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的调整。

5. onStop函数:反注册在onStart函数中注册的变量。

6. onDestory函数:反注册在onCreate函数中注册的变量。

在Android-Hello中,

?
1
2
3
4
5
6
7
8
public class UbiLrnActivity extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
 }
}

首先,声明了一个onCreate函数,这个函数的传入参数是savedInstanceState.型别是Bundle,Bundle是一个数据参数,一般用于Activity之间的数据传送。onCreate()的参数都是Bundle类的。

super.onCreate表示的是调用父类onCreate。

setContentView(R.layout.main)表示的是通过加载main.xml来加载系统的resource.

希望本文所述对大家Android程序设计有所帮助。