`
Bauble
  • 浏览: 66977 次
  • 性别: Icon_minigender_1
  • 来自: Mercury
社区版块
存档分类
最新评论

Android08_Activity生命周期(二)

阅读更多

一、Task基本概念

1.Task就是一个存放activity的栈。在同一个Task中所有的Activity都可以看作是同一个单元。

2.例子程序

举个很简单的例子,有三个Activity,分别为FirstActivity、SecondActivity和ThirdActivity。FirstActivity中有一个Button,可以跳转到SecondActivity。SecondActivity中有一个Button,可以跳转到ThirdActivity。在ThirdActivity中也有个Button,可以跳转到发送短信的Activity。

FirstActivity.java

 

package com.android.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class FirstActivity extends Activity {

	private Button firstButton = null;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        firstButton = (Button)findViewById(R.id.firstButton);
        firstButton.setText(R.string.firstButton);
        firstButton.setOnClickListener(new FirstButtonListener());
    }
	
	class FirstButtonListener implements OnClickListener{

		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setClass(FirstActivity.this, SecondActivity.class);
			FirstActivity.this.startActivity(intent);
		}
		
	}
}

 

       

  SecondActivity.java

 

package com.android.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SecondActivity extends Activity {

	private Button secondButton = null;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        
        secondButton = (Button)findViewById(R.id.secondButton);
        secondButton.setText(R.string.secondButton);
        secondButton.setOnClickListener(new SecondButtonListener());
    }
	
	class SecondButtonListener implements OnClickListener{

		public void onClick(View v) {
			
			Intent intent = new Intent();
			intent.setClass(SecondActivity.this, ThirdActivity.class);
			SecondActivity.this.startActivity(intent);
		}
		
	}
}

 

     

  ThirdActivity.java

 

package com.android.activity;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ThirdActivity extends Activity {

	private Button thirdButton = null;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.third);
        
        thirdButton = (Button)findViewById(R.id.thirdButton);
        thirdButton.setText(R.string.thirdButton);
        thirdButton.setOnClickListener(new ThirdButtonListener());
    }
	
	class ThirdButtonListener implements OnClickListener{

		public void onClick(View v) {
			Uri uri = Uri.parse("smsto://13877776666");
			Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
			intent.putExtra("sms_body", "短信内容");
			ThirdActivity.this.startActivity(intent);
		}
		
	}
}
 

      

  点击发短信按钮后:


     
 

 

二、Activity和Task之间的关系

·当应用程序启动之后,首先运行FirstActivity之后,该Activity对象被压入Stack中,此时栈中只有一个对象

             
     ·当点击按钮启动第二个Activity(secondActivity),该Activity对象被压入到栈中,手机显示的永远都是栈顶部的Activity对象


                  
  ·点击第二个Activity的按钮(thirdButton)之后,启动第三个Activity(thirdActivity),该Activity对象也被压入stack当中


                 
  ·点击第三个Activity的按钮之后(去发短信按钮),启动第四个Activity,即系统自带的发短信程序


                    
  此时,其他三个对象并没有被销毁,只不过是在栈的下面,当每次点击back按钮之后,栈顶的对象就会被弹出,当前显示的activity就会变成下面的activity。

另外,在栈中的对象只有压入和弹出,不能更改顺序

 

三、对话框风格Activity的使用方法

对话框风格的Activity很简单,只要修改Android Manifest.xml文件中注册的activity就可以了,添加theme

 

<activity android:name=".SecondActivity"
        		  android:label="@string/app_name"
        		  android:theme="@android:style/Theme.Dialog"></activity>

     

  此时,因为secondActivity并没有完全遮盖住FirstActivity,所以此时不会调用FirstActivity的onStop方法!

 

  另外,对于手机来说,和电脑的区别在于,手机的资源较少,且需要考虑电量等的要求,所以Android会在资源占用较大,不足以支撑手机正常功能的时候,就会清除掉一些它认为不重要的activity,一般当activity处于onPause、onStop或onDestory时,就会kill掉。

  • 大小: 21 KB
  • 大小: 20.9 KB
  • 大小: 20.7 KB
  • 大小: 22.7 KB
  • 大小: 12.4 KB
  • 大小: 20.9 KB
  • 大小: 29.5 KB
  • 大小: 37.7 KB
  • 大小: 27.4 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    android_Activity生命周期

    Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...

    Android_Activity_生命周期例子

    这是Activity生命周期的第一个回调,通常在这里进行布局加载、初始化变量和设置基本UI等操作。 2. **可见态(Started)**: `onStart()`方法标志着Activity变得对用户可见,但还没有占据屏幕的焦点。此时,Activity...

    Android开发教程_016_Activity生命周期_标清.flv

    Android开发教程_016_Activity生命周期_标清

    两分钟让你明白Android_Activity生命周期

    Android中的Activity生命周期是每个Android开发者必须深入理解的关键概念。它涉及到Activity从创建到销毁的整个过程,以及在不同用户交互和系统状态变化时如何响应。本文将详细解析Activity的生命周期,并通过实例...

    Android_Activity生命周期详解(图文)

    ### Android Activity 生命周期详解 #### 一、概述 在Android开发中,`Activity`是四大组件之一,用于构建用户界面,并负责与用户的交互。一个`Activity`通常对应着一个屏幕,当用户在一个应用的不同屏幕间导航时...

    Android activity生命周期示例

    本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...

    Android Activity生命周期

    Android Activity 生命周期 Android Activity 生命周期是指 Activity 从创建到销毁的整个过程,该过程中会经历多个状态变化,每个状态变化都会触发相应的回调方法。理解 Activity 生命周期是 Android 开发的基础。 ...

    android Activity生命周期

    Android Studio提供了多种工具帮助开发者调试Activity生命周期。例如: 1. **Android Profiler**:可以实时监控Activity的生命周期状态变化,同时分析内存、CPU和网络使用情况。 2. **Logcat**:通过打印日志,可以...

    实验一 第一个Android程序和Activity生命周期.zip

    实验一 第一个Android程序和Activity生命周期。实验要求: 1.用工程向导生成第一个Android程序,并在模拟器上运行 注意在新建应用的选择SDK版本时选API 18 2.熟悉Android应用程序的基本文件结构 3.了解使用开发环境...

    android Activity生命周期详解(图文)

    总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...

    android activity 生命周期详细介绍

    ### 二、Activity生命周期示例分析 接下来我们通过几个具体的示例来进一步理解这些生命周期方法是如何工作的: 1. **启动一个简单的Activity:** - `activity01 onCreate -&gt; activity01 onStart -&gt; activity01 ...

    android启动以及activity生命周期分析

    ### Android启动及Activity生命周期分析 在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和...

    Activity生命周期与启动模式

    **Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...

    Android课程第一次实验报告_Andorid应用程序Activity生命周期.docx

    本实验报告将深入探讨Android应用程序,尤其是Activity、Service和Intent Receiver的生命周期,并解释如何正确管理这些组件以避免不必要的进程销毁。 首先,Android应用通常在独立的Linux进程中运行。当应用需要...

    Activity生命周期演示

    日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...

    Android Activity生命周期测试代码

    有助于深入了解Android Activity生命周期的测试代码,可以结合博客http://blog.csdn.net/freetangxiaoying/article/details/17167819领悟。

    Android说明Activity生命周期的代码例子

    在ExmActLife这个文件中,很可能包含了不同生命周期方法的示例代码,以及模拟不同启动模式的实验,通过这些实践,开发者可以更好地理解和掌握Activity生命周期的控制,从而优化应用性能和用户体验。实践中,我们应...

    Android屏幕旋转时Activity的生命周期

    在Android应用开发中,了解Activity的生命周期至关重要,尤其是在屏幕旋转这样的设备状态变化时。当用户在使用设备时,比如从竖屏切换到横屏,或者反之,系统会自动调用Activity的相关方法,来管理和恢复应用的状态...

Global site tag (gtag.js) - Google Analytics