理解活动
活动就是一个包含应用程序的用户界面的窗口
Activity四种状态
Active/Runing
一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。 [img][/img]
Paused
当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
Stoped
当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped 状态。
Killed Activity
被系统杀死回收或者没有被启动时处于 Killed 状态。
Activity生命周期流程图
Activity生命周期这种方法
方法 | 描述 | 下一个操作 |
onCreate() | 活动初始化创建时候调用 | onStart() |
onStart() | 活动对用户可见时调用 | onResume()或onStop() |
onRestart() | 活动重新启动(从后台返回前台)时候调用 | onStart() |
onResume() | 活动跟用户交互之前调用 | onPause() |
onPause() | 在系统要激活另一个活动时调用 | onResume() 或者 onStop() |
onStop() | 活动在不可见的情况下调用 | onRestart() 或者 onDestroy() |
onDestory() | 活动被销毁时候调用 | |
Activity的运作流程
当用户按下back按钮时,一个活动就被销毁。onPause()事件在两个情况下都将被调用——当活动被送人后台以及用户按下back键盘而终止活动时。
- 一般启动Activity:onCreate -> onStart -> onResume
- 呼叫另一个Activity: onPause -> onCreate -> onStart -> onResume -> onStop
- 还原Activity: onPause -> onRestart -> onStart -> onResume -> onStop -> onDestroy
- 退出Activity: onPause -> onStop -> onDestroy
- 回收再启动Activity: onCreate -> onStart -> onResume
使用意图链接活动
Android中的活动之间的导航是通过意图来完成的
在AndroidMainfest.xml文件中,专门添加了以下内容
<activity
android:label ="Second Activity"
android:name =".SencondActivity">
<intent-filter>
<action android:name ="com.dawei.test. SencondActivity">
<category android:name ="android.intent.category.DEFAULT">
</intent-filter>
</activity>
添加的新活动的名称是SecondActivity
新活动的标签为Second Activity
新活动意图名称为com.dawei.test. SencondActivity
意图筛选器的类别是android.intent.category.DEFAULT
在代码中可以通过下面方式调用
startActivity(new Intent("com.dawei.test. SencondActivity"));
//也可以这样写
startActivity(new Intent(this, SencondActivity.class));
如果需要从一个活动中回传数据,应该使用startActivityForResult()
//意图调用
startActivityForResult(new Intent(com.dawei.test, SencondActivity),recode_code)
//回调方法
public void onActivityResult(int requestCode,int resultCode,Intent data){
...
}
使用意图对象传递数据
Intent i = new Intent("net.learn2develop.SecondActivity");
//---use putExtra() to add new key/value pairs---
i.putExtra("str1", "This is a string");
i.putExtra("age1", 25);
//---use a Bundle object to add new key/values
// pairs---
Bundle extras = new Bundle();
extras.putString("str2", "This is another string");
extras.putInt("age2", 35);
//---attach the Bundle object to the Intent object---
i.putExtras(extras);
//---start the activity to get a result back---
startActivityForResult(i, 1);
碎片
可以把碎片看做另一种形式的活动,碎片总是内嵌在活动中的
碎片的生命周期
- 碎片被创建时:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated();
- 碎片变为可见时:onStart()-->onResume();
- 碎片进入后台模式时:onPause()-->onStop();
- 碎片被销毁时:onPause()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach();
就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
onCreate()
onCreateView()
onActivityCreated()
fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
onAttached() —— 当fragment和activity关联之后,调用这个方法。
onCreateView() —— 创建fragment中的视图的时候,调用这个方法。
onActivityCreated() —— 当activity的onCreate()方法被返回之后,调用这个方法。
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。
使用意图调用内置应用程序
可以通过意图来调用内置的程序,如电话,信息,邮件等应用
分享到:
相关推荐
Android入门学习资料是一套专为初学者设计的教育资源,涵盖了Android开发的基础知识和技能。这份资料集合了网络上的各类教程、文档和示例代码,旨在帮助新手快速掌握Android应用开发的基本概念和技术。由于该压缩包...
"Android开发入门60个小案例+源代码.rar.rar" 提供了一套全面的学习资源,旨在帮助初学者快速熟悉Android应用开发的基本流程和技术要点。以下是对这些小案例及其源代码的详细解析。 1. **环境配置**:首先,学习...
这个资源包"android入门与实践所有的例子"显然是为初学者设计的,旨在帮助他们快速掌握Android应用程序开发的基础知识和技能。以下是一些核心知识点,这些知识点通常会在这个主题中被涵盖: 1. **Android Studio**...
"非常基础的Android入门教材"正是这样的一份资源,它涵盖了从基础控件到窗口管理,再到菜单设计等多方面的知识,旨在帮助新手逐步掌握Android开发的基本技能。 在30个章节中,这份教材可能包含以下内容: 1. **...
在Android开发领域,入门与实例是学习的关键环节。Android是一个开放源代码的移动操作系统,广泛应用于智能手机、平板电脑以及智能电视等设备。本资源“Android开发入门与实例 Demos”旨在帮助初学者快速掌握Android...
Android平台上的应用开发在本资源中被分为了若干核心章节,每个章节都围绕Android的特定方面,例如用户界面设计、活动生命周期、意图使用、资源管理等,提供详实的理论知识和实践指南。 在介绍Android的章节中,...
通过《Android常用代码大全及入门电子书》,开发者不仅可以学习到以上基础知识,还能获取到大量实用的代码片段,为实际项目开发提供便利。这本书是Android开发者提升技能、解决问题的宝贵资源。
"60个Android经典入门程序源代码"提供了一个绝佳的学习资源,涵盖了各种核心概念和技术。这些源代码实例是初学者掌握Android编程的关键步骤,也是进阶开发者巩固基础的宝贵资料。下面将详细阐述这些源代码中可能包含...
8. **碎片(Fragment)**:适应多屏幕设备,学习如何在活动中添加和管理Fragment,实现界面的动态加载。 9. **数据存储**:掌握SQLite数据库的使用,学习如何创建数据库、表,进行数据的增删改查操作。同时,了解...
【安卓经典小程序--我的联系人】是一个非常适合新手入门的安卓应用程序开发实例,它主要展示了如何在Android平台上构建一个简单的联系人管理应用。这个小程序能够帮助开发者理解和掌握Android的基础知识,如用户界面...
"Android移动应用开发从入门到精通"这个主题旨在提供一个全面的学习路径,帮助新手和有经验的开发者深化对Android平台的理解。这份资源可能包含源码示例,这对于实践和理解编程概念至关重要。 1. **Android基础知识...
学习如何安装和配置Android Studio是入门的第一步。 2. **项目结构**:理解Android项目的目录结构至关重要,如`src`目录下的`main`目录包含了应用的主要源代码,`res`目录存储资源文件,`AndroidManifest.xml`定义...
3. **活动(Activity)与意图(Intent)**:Activity是Android应用的基本单元,负责用户交互。您将学习如何创建、启动和管理Activity,以及使用Intent进行不同组件间的通信。 4. **数据存储**:Android提供了多种...
这包括Activity(活动)、Intent(意图)、Fragment(碎片)等组件,以及布局管理器如LinearLayout、RelativeLayout和ConstraintLayout。学习如何在XML中编写布局,以及在Java/Kotlin代码中与它们交互,是构建用户...
这篇新版的Android开发教程——"基础入门二"涵盖了Android开发的关键概念和技术,旨在帮助初学者迅速掌握Android应用开发的基本技能。以下是对教程内容的详细概述: 一、环境搭建 首先,学习Android开发需要安装...
学习如何创建意图、启动活动和服务,以及使用Intent进行数据传递。 6. **SQLite数据库**:Android内置SQLite数据库用于本地数据存储。了解如何创建数据库、表,以及执行CRUD操作(创建、读取、更新和删除)。 7. *...
"Android开发精典案例60"是一份宝贵的资源,包含了60个精心挑选的项目,专为初学者设计,旨在帮助他们快速入门并深入理解Android应用开发的核心概念。下面将详细阐述这些案例可能涉及的知识点,以及它们对学习者的...
2. **活动(Activity)和意图(Intent)**:理解活动作为Android应用的主要组件,以及如何通过意图在活动之间传递数据和启动服务。 3. **视图和视图组(Views and ViewGroups)**:学习创建自定义视图,以及如何...
这是每个Android开发者入门的第一步。 2. **布局设计**:使用XML编写界面布局,了解各种视图组件(如TextView、EditText、Button等)及其属性,以及如何通过约束布局、线性布局、相对布局等组织元素。 3. **活动...