本文分析了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程序设计有所帮助。