Activity 生命周期
来源:互联网 发布:淘宝怎么上一千零一夜 编辑:程序博客网 时间:2024/06/06 13:05
Activity生命周期概述
Activity概念:
Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收 器)之一。
Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。
在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过 Intent进行通信。
当我们新建一个安卓项目并创建一个主Activity时,我们可以看到这个Activity里有且只有一个OnCreate函数
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
Activity生命周期:
那么Activity还有其他函数没有写出来么?当然,我们先看一下OnCreate的描述:Called when the activity is first created. This is where you should do all of your normal static set up: create views, bind data to lists, etc. This method also provides you with a Bundle containing the activity's previously frozen state, if there was one.Always followed byonStart()
.意思是当activity第一次被创建的时候调用,在这里应该进行数据的初始化等工作。此方法提供给你一 个包含activity先前的状态。紧接着OnCreate后面的经常是OnStart;由此我们可以知道还存在着其他的函数,如OnStart,OnResume,OnPause,OnStop,OnRestart, OnDestroy,Activity处于不同的状态时会调用不同函数。启动主Activity时,函数调用过程:OnCreate()->OnStart()->OnResume();假设通过点击按钮触发事件跳转到另一个SecondActivity时,主Activity先调用pause()暂停;SecondActivity调用OnCreate()->OnStart()->OnResume()从而实现跳转,此时主Activity不可见,然后主 Activity调用OnStop()停止,当按返回键从SecondActivity返回到主Activity时,secondActivity先调用pause()暂停,主Activity调用OnReStart()->OnStart()->OnResume(),secondActivity 调用OnStop(),OnDestroy(),此时回到了主Activity;假设通过点击按钮触发事件跳转到另一个ThirdActivity(ThirdActivity通过在AndroidManifest.xml设置了 android:theme="@android:style/Theme.Dialog"使其呈现出对话框的形式,当主Activity跳转到此Activity时,主Activity依然可见),此时他们各自的调用如下:主Activity先调用pause()暂停,ThirdActivity调用OnCreate()->OnStart()->OnResume()从而实现跳转,此时主Activity可见,当按返回键从ThirdActivity返回到主Activity时,ThirdActivity先调用pause()暂停主Activity调用直接OnResume(),而不必OnReStart()->OnStart()->OnResume()因为它并没有被Stop,ThirdActivity 调用OnStop(),OnDestroy(),此时回到了主Activity;
Activity不同函数所起到的功能:
onCreate()
Always followed by onStart()
.
onStart()
onRestart()
Always followed by onStart()
onStart()
onStart()
Followed by onResume()
if the activity comes to the foreground, or onStop()
if it becomes hidden.
onResume()
or onStop()
onResume()
Always followed by onPause()
.
onPause()
onPause()
Followed by either onResume()
if the activity returns back to the front, or onStop()
if it becomes invisible to the user.
onResume()
oronStop()
onStop()
Followed by either onRestart()
if this activity is coming back to interact with the user, or onDestroy()
if this activity is going away.
onRestart()
oronDestroy()
onDestroy()
finish()
on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isFinishing()
method.YesnothingPS:Activity跳转代码:
Intent it = new Intent();
it.setClass(MainActivity.this, SecondActivity.class);
startActivity(it);
startActivity(it);
此跳转代码不传递任何数据,只负责跳转。
0 0
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity 生命周期
- activity生命周期
- Activity 生命周期
- Activity生命周期
- Activity生命周期
- Activity生命周期
- 【QT】QT4.8.6静态编译
- 51nod 最长公共子序列 (DP+回溯)
- 浅谈计算机中的存储模型(二)物理内存
- ARM 关键几个寄存器
- (一)程序设计的基本知识
- Activity 生命周期
- TDD相关测试框架
- iOS7的statusBar和navigationBar
- iOS7自定义statusbar和navigationbar的若干问题
- C++ string大小写转换
- (二)对象和类型
- "=="和"equal"的区别
- Laravel+apache 报 404
- sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全