Android——Activity的生命周期
一,Demo測试Activity的生命周期
写两个Activity:
- package com.example.activity_04;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Intent;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class FirstActivity extends Activity {
- private Button myButton=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- System.out.println("firstActivity-->onCreate");
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_first);
- myButton=(Button)findViewById(R.id.myButton);
- myButton.setOnClickListener(new BtnClick());
- }
- class BtnClick implements OnClickListener{
- @Override
- public void onClick(View arg0) {
- // TODO 自己主动生成的方法存根
- Intent intent=new Intent();
- intent.setClass(FirstActivity.this,SecondActivity.class );
- FirstActivity.this.startActivity(intent);
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.first, menu);
- return true;
- }
- @Override
- protected void onRestart() {
- // TODO 自己主动生成的方法存根
- System.out.println("firstActivity-->onRestart");
- super.onRestart();
- }
- @Override
- protected void onDestroy() {
- // TODO 自己主动生成的方法存根
- System.out.println("firstActivity-->onDestroy");
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- // TODO 自己主动生成的方法存根
- System.out.println("firstActivity-->onPause");
- super.onPause();
- }
- @Override
- protected void onResume() {
- // TODO 自己主动生成的方法存根
- System.out.println("firstActivity-->onResume");
- super.onResume();
- }
- @Override
- protected void onStart() {
- // TODO 自己主动生成的方法存根
- System.out.println("firstActivity-->onStart");
- super.onStart();
- }
- @Override
- protected void onStop() {
- // TODO 自己主动生成的方法存根
- System.out.println("firstActivity-->onStop");
- super.onStop();
- }
- }
- package com.example.activity_04;
- import android.app.Activity;
- import android.os.Bundle;
- public class SecondActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onCreate");
- super.onCreate(savedInstanceState);
- }
- @Override
- protected void onDestroy() {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onDestroy");
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onPause");
- super.onPause();
- }
- @Override
- protected void onRestart() {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onRestart");
- super.onRestart();
- }
- @Override
- protected void onResume() {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onResume");
- super.onResume();
- }
- @Override
- protected void onStart() {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onStart");
- super.onStart();
- }
- @Override
- protected void onStop() {
- // TODO 自己主动生成的方法存根
- System.out.println("SecondActivity--->onStop");
- super.onStop();
- }
- }
然后启动程序,如图:
能够看到第一个Activity以此被调用的方法。
onCreate |
OnStart |
OnResume |
第一次创建时调用,能够配置使用的layout文件 |
当Activity能被我们看到的时候 |
当Activity能够获得用户焦点的时候被调用 |
之后点击第一个Activiyt上的button,跳转到第二个Activity:
发现第一个Activity的OnPause方法被调用,接着是初始化一个新的Activity被调用的方法,当第二个Activity出现之后,第一个Activity的OnStop方法被调用。
OnPause |
OnStop |
应用程序启动另外一个activity的时候,会调用第一个activity的OnPause方法 :通常保存当前Activity的数据 |
当Activity处于不可见的时候会调用第一个activity的Onstop方法,假设新出来的activity不全然遮挡住第一个activity,则不会调用 |
接着点击backbutton,
注意这里第一个Activity起来之后先调用的是OnRestart方法。
OnDestory |
OnRestart |
销毁Activity 一般两种情况会调用这种方法: 1,调用activity的finish方法 2,当系统资源不够用的时候 |
又一次调用paused activity |
小结:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
Activity调用的生命周期感觉相似.NET里面页面生命周期。感觉比那个简单点儿。
Android——Activity的生命周期的更多相关文章
- Android Activity的生命周期简单总结
Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...
- Android Activity的生命周期
一.为什么要了解Activity的生命周期 activity is directly affected by its association withother activities, its tas ...
- Android Activity的生命周期详解
应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最 ...
- 4、Android Activity的生命周期 Activity的生命周期
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV4aWt1b18x/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- Android Activity的生命周期的几个方法介绍
onCreate():创建Activity调用,用于Activity的初始化,还有个Bundle类型的参数,可以访问以前存储的状态. onStart():Activity在屏幕上对用户可见时调用 on ...
- android activity的生命周期和启动模式
activity是android开发的基本中的基本每一个项目都会有activity.activity有自己的生命周期,在网上有很多博客和资料,在这里我也只是印证一下. 一个activity: 在打开a ...
- Android -- Activity的生命周期,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance
1. 示例图 . 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: Activity的完整生命周期自第一次调用onCreate()开始,直至调 ...
- [android] Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化
生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle ...
- Android Activity Fragment 生命周期
从开源项目中看到 这个,就情不自禁的收藏了~ https://github.com/xxv/android-lifecycle
随机推荐
- Codeforces Round #281 (Div. 2) B 模拟
B. Vasya and Wrestling time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- bzoj 3309 DZY Loves Math 莫比乌斯反演
DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1303 Solved: 819[Submit][Status][Dis ...
- jQuery UI-Draggable 参数集合
·概述 在任何DOM元素启用拖动功能.通过单击鼠标并拖动对象在窗口内的任何地方移动. 官方示例地址:http://jqueryui.com/demos/draggable/ 所有 ...
- CodeVs1515 跳
题目描述 Description 邪教喜欢在各种各样空间内跳. 现在,邪教来到了一个二维平面.在这个平面内,如果邪教当前跳到了(x,y),那么他下一步可以选择跳到以下4个点:(x-1,y), (x+1 ...
- 7.0不通过FileProvider解决调用相机给uri问题异常
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//严格模式 StrictMode.VmPolicy.Builder builder = ...
- Kubernetes控制节点安装配置
#环境安装Centos 7 Linux release 7.3.1611网络: 互通配置主机名设置各个服务器的主机名hosts#查找kubernetes支持的docker版本Kubernetes v1 ...
- 解决/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.17' not found问题
在项目中使用第三方动态库时,出现异常:/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found 查看系统库时,发现确实没有对应的版本: ...
- cordova学习:事件Events
deviceready: 当cordova完全加载,可以调用cordova API接口 支持平台:Amazon.Fire OS.Android.BlackBerry 10.iOS.Tizen.Wind ...
- JavaScript中数组Array.sort()排序方法详解
JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编 ...
- ssh登录服务器免密钥
我有三台Linux,IP分别为a:10.0.0.20/b:10.0.0.50/c:10.0.0.60/d:10.0.0.70 # a为本地主机 b c d为远程主机 #在a上生成密钥对(3次回车出现 ...