`
dyllove98
  • 浏览: 1405345 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39057
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80060
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133167
社区版块
存档分类
最新评论

Android学习笔记-Activity的生命周期

 
阅读更多

wKioL1RpZyCQrWqoAACkJvLzHVo606.jpg

wKiom1RpZqyCR_IAAAB7HdIdDEc995.jpg

界面activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.activity_05.MainActivity" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="22dp"
        android:text="启动第二个Activity" />
 
</RelativeLayout>

界面second.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is the second activity" />
 
</LinearLayout>

MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.example.activity_05;
 
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.view.View.OnClickListener;
 
public class MainActivity extends ActionBarActivity {
    private Button button;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.out.println("MainActivity onCreate:第一次调用Activity的时候执行");
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
             
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this, SecondActivity.class);
                MainActivity.this.startActivity(intent);
            }
        });
    }
     
    @Override
    protected void onResume() {
        System.out.println("MainActivity onResume");
        super.onResume();
    }
     
       //以上三个方法执行完毕之后这个Activity就可以使用了 
     
    @Override
    protected void onStart() {
         System.out.println("MainActivity onStart:Activity处于可见状态的时候调用");
        super.onStart();
    }
     
    @Override
    protected void onRestart() {
        System.out.println("MainActivity onRestart:Activity又可以得到用户焦点的时候调用");
        System.out.println("当从第二个Activity又回到第一个Activity时调用此方法");
        System.out.println("然后调用onResume方法就可以显示出来");
        System.out.println("然后调用第二个Activity的onStop、onDestroy。第二个Activity就被销毁掉了");
        super.onRestart();
    }
     
    @Override
    protected void onPause() {
        System.out.println("MainActivity onPause");
        System.out.println("如果在执行当前Activity的时候又启动了一个Activity就会调用当前Activity的此方法");
        System.out.println("然后依次调用新启动的Activity的onCreate、onStart、onResume");
        System.out.println("然后调用第一个Activity的onStop方法");
        super.onPause();
    }
     
    @Override
    protected void onStop() {
        System.out.println("MainActivity onStop");
        //如果第二个Activity把第一个Activity完全遮挡住就调用这个函数
        super.onStop();
    }
     
    @Override
    protected void onDestroy() {
        System.out.println("MainActivity onDestroy");
        super.onDestroy();
    }
}

SecondActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.example.activity_05;
 
import android.app.Activity;
import android.os.Bundle;
 
public class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
    }
     
    @Override
    protected void onStart() {
        System.out.println("SecondActivity onStart");
        super.onStart();
    }
     
    @Override
    protected void onRestart() {
        System.out.println("SecondActivity onRestart");
        super.onRestart();
    }
     
    @Override
    protected void onResume() {
        System.out.println("SecondActivity onResume");
        super.onResume();
    }
     
    @Override
    protected void onPause() {
        System.out.println("SecondActivity onPause");
        super.onPause();
    }
     
    @Override
    protected void onStop() {
        System.out.println("SecondActivity onStop");
        super.onStop();
    }
     
    @Override
    protected void onDestroy() {
        System.out.println("SecondActivity onDestroy");
        super.onDestroy();
    }
}

 

AndroidManifest.xml

1
<activity android:name=".SecondActivity" android:label="第二个Activity"/>

 


 


日志输出如下

wKiom1RpZ0zAZVjeAAiNlG_UNMA234.jpg

每次显示栈顶Activity的内容

wKiom1RplyPCRCpkAAHyBxisZwA237.jpg

 

欢迎大家访问我的个人网站 萌萌的IT人
2
1
分享到:
评论

相关推荐

    Android学习笔记-Activity篇

    在Android开发中,Activity是应用程序的基本构建...理解Activity生命周期及其在Task和Back Stack中的行为,有助于创建高效且用户体验良好的应用。在实际开发中,根据应用需求灵活运用这些概念,将使你的应用更加出色。

    Android自学笔记-15-Activity的生命周期

    最后,注意Android的Task和Back Stack也是Activity生命周期的重要组成部分。Task是一组按照创建顺序堆叠的Activity,而Back Stack则管理着这些Task的历史记录。用户可以通过返回键按照栈的顺序回退到之前的状态。 ...

    Android开发笔记(3)-Activity生命周期

    总之,掌握Activity生命周期是Android开发的基础,它涉及到应用的响应性、效率和稳定性。开发者需要根据应用的需求灵活运用生命周期方法,确保在不同场景下都能提供优质的用户体验。通过深入学习和实践,我们可以更...

    android 学习笔记7-页面跳转 Activity启动 生命周期 activity数据传递

    1、创建一个自己的Activity 2、启动activity-显示启动和隐式启动: 3、隐式启动自己的activity 4、获取隐启动传递过来的data数据 5、显示启动传递数据 6、禁用掉横竖屏切换 7、开启activity获取返回值-...

    Android Activity学习笔记

    Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...

    第一行代码 android学习笔记 完整版

    Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中系统地介绍了Android...

    android入门学习笔记-永远不变的helloworld、初识activity

    - `public void onCreate(Bundle icicle)`:这是Activity生命周期中的一个重要方法,当Activity被创建时调用。`Bundle icicle`参数用于保存Activity的状态信息。 - `setTheme(android.R.style.Theme_Dark)`:设置...

    Android学习笔记-service[参考].pdf

    【Android Service 知识点详解...理解Service的工作机制和生命周期对于开发高效、稳定的Android应用至关重要。开发者应根据需求选择合适类型的Service,并注意线程管理和资源管理,确保Service在后台正确且高效地运行。

    Android学习笔记

    Android学习笔记(1)-永远不变的Hello World Android学习笔记(2)-初识Activity Android学习笔记(3)-Activity的生命周期 Android学习笔记(4)-学习Intent的使用,

    Android自学笔记-16-任务栈

    在Android系统中,任务栈...通过熟练掌握任务启动模式、回退栈机制以及Intent Flag的使用,开发者可以更好地控制应用的生命周期,提供无缝的用户导航体验。在实践中不断探索和学习,是提升Android开发技能的关键。

    Android笔记(3)---Activity和Intent

    工具方面,Android Studio提供了强大的调试工具,如Logcat用于查看日志,帮助开发者追踪Activity的生命周期变化和Intent的传递过程。另外,Hierarchy Viewer(现在被Layout Inspector取代)可以可视化地查看Activity...

    Android学习笔记(十五)——碎片的生命周期

    本篇学习笔记将深入探讨碎片的生命周期,这对于理解如何有效管理Android应用的用户界面至关重要。 碎片的生命周期与Activity的生命周期紧密关联,但它们之间存在着一些差异。首先,让我们来看看一个Fragment的基本...

    Android学习新手笔记

    - Activity的基本配置和生命周期理解。 - Activity之间的跳转和信息传递。 - 类似Activity切换效果的实现,例如使用layout切换。 12. activityForResult的使用 - activityForResult的实现机制和使用方法,用于...

    新版Android开发教程及笔记-完整版

    新版Android开发教程及笔记将涵盖Android系统的基本架构、应用程序生命周期管理以及UI设计等核心概念。 1. **Android系统架构**:Android系统分为应用层、应用框架层、系统运行库层和Linux内核层。开发者主要在应用...

    Android 学习笔记——旋转模拟器方向,全屏,窗口生命周期

    这篇“Android学习笔记”主要探讨了如何在模拟器中旋转屏幕方向、实现应用全屏显示以及理解窗口生命周期。这些概念对于创建用户友好且性能优良的Android应用程序至关重要。 首先,让我们详细讨论如何在Android...

    Android学习笔记(5-13)

    这篇Android学习笔记主要涵盖了从第五章到第十三章的内容,是Android开发者或对Android系统感兴趣的初学者的重要参考资料。笔记详细解读了Android应用开发的核心概念和技术,旨在帮助读者深入理解并掌握Android开发...

    Android群英传笔记-----by ---------刘某人程序员

    其次,笔记深入讲解了Android应用程序的生命周期管理,包括Activity、Service、BroadcastReceiver和ContentProvider的创建与使用。这部分内容对于理解和控制应用的行为至关重要,能确保你的程序在不同场景下运行稳定...

    android学习笔记2--BroadcastReceiver

    需要注意的是,由于`onReceive()`的生命周期短暂,创建新线程进行耗时操作可能会导致线程未执行完BroadcastReceiver就已销毁。另外,在内存紧张时,系统会优先结束不包含任何活动组件的进程,这可能导致由...

    android学习笔记2

    Android学习笔记2中提到的内容涵盖了Android开发的核心知识,包括Android四大组件、Activity生命周期、Service生命周期、广播接收器生命周期以及资源文件的使用。 首先,Android四大组件包括Activity、...

Global site tag (gtag.js) - Google Analytics