Android编程-Activity
重要的回调函数:
onCreate():初始化activity要用的其他的组件(可以是其他的activity和contentprovider之类)。调用setContentView(),设定本Activity用户界面的布局。
onPause():用户离开activity。确认哪些用户更改需要保存。
用户界面:
用户界面由View的子类实现,每个view控制Activity中的一块矩形空间(例如按钮)。
线程的View:
小部件:按钮、文本框、复选框、图像。
布局:ViewGroup的子类,线性布局、网格布局、相对布局。
借助Android程序的资源内的xml布局文件来定义布局。这样Activity代码负责行为,而布局定义在xml中。
在清单文件中定义Activity,这样Activity才能被执行。
Android SDK创建Android程序时,自动创建intent-filter:
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> ------- 指定该Activity是Android程序的主入口
<category android:name="android.intent.category.LAUNCHER" /> ------- Activity有系统的Launcher来启动
</intent-filter>
</activity>
开发者可以创建更多的<intent-filter>,与其他组件的隐式Intent想匹配,从而可以让其他组件激活此Activity。
https://developer.android.com/guide/components/intents-filters.html
Intent是一个消息对象。其使用方式如下:
1) 启动Activity。
将Intent传给startActivity(),可以启动一个Activity实例。Intent描述了要启动的Activity,并携带了必要的数据。
将Intent传给startActivityForResult(),启动的Activity结束后会调用回调函数onActivityResult(),将结果返回。
2) 启动Service。
Intent指定具体哪个服务,并携带必要的数据。
将Intent传递给startService(),启动一个服务,进行一次性操作(例如,下载文件)。
将Intent传递给bindService(),绑定一个服务。
3) 传递广播。
广播是所有Android程序都可以接收的消息。Android OS将各种系统事件(例如充电)广播出去。
将Intent传递给sendBroadcast()、sendOrderedBroadcast()、sendStickyBroadcast(),进行广播。
Intent有如下类型:
1) 显式Intent:通过类名来指定要启动的组件(反射机制)。
2) 隐式Intent:声明要执行的动作(例如,在地图上显式位置),让其他Android程序完成此动作。
查找清单文件,如果隐式Intent与文件中的<intent-filter>匹配,则启动该Android程序。
如果有多个Android程序的<intent-filter>匹配,则显示一个列表,供用户选择。
<略>
保存Activity的状态:
在Activity进入pause和stop状态之后,可能会被Android OS杀掉。
在回调函数onSaveInstanceState()中保存状态,这样用户再次回到Android程序时,一切如初,好像什么也发生一样。
在Android OS销毁Activity时,传递一个Bundle给onSaveInstanceState(),将名值对放入Bundle。
当Android OS重新创建Activity时,Bundle被传递给onCreate()和onRestoreInstanceState(),于是Activity的状态可以恢复出来。
Android编程-Activity的更多相关文章
- Android编程: Activity生命周期和LogCat使用
学习内容:Activity生命周期和LogCat使用 ====Activity生命周期==== 图示(转载): 创建 onCreate重启 onRestart开始 onStart恢复 ...
- Android 编程下 Activity 的创建和应用退出时的销毁
为了确保对应用中 Activity 的创建和销毁状态进行控制,所以就需要一个全局的变量来记录和销毁这些 Activity.这里的大概思路是写一个类继承 Application,并使获取该 Applic ...
- 关于android编程中service和activity的区别
一. 绝大部分情况下,Service的作用是用来“执行”后台的.耗时的.重要的任务,三者缺一不可,而最重要的原因是第三点:要执行重要的任务. 因为当一个进程启动了Service后,进程的优先级变高了, ...
- Android内存Activity泄露:Threads
Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露.思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务. ...
- Android中Activity、Service和线程之间的通信
Activity.Service和线程应该是Android编程中最常见的几种类了,几乎大多数应用程序都会涉及到这几个类的编程,自然而然的,也就会涉及到三者之间的相互通信,本文就试图简单地介绍一下这三者 ...
- Android编程中的5种数据存储方式
Android编程中的5种数据存储方式 作者:牛奶.不加糖 字体:[增加 减小] 类型:转载 时间:2015-12-03我要评论 这篇文章主要介绍了Android编程中的5种数据存储方式,结合实例形式 ...
- Android学习 -- Activity 以及Activity之间值传递
项目结构如图 关键代码如下 strings.xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> &l ...
- 《Android编程权威指南》
<Android编程权威指南> 基本信息 原书名:Android programming: the big nerd ranch guide 原出版社: Big Nerd Ranch Gu ...
- 【Android】Activity 生命周期具体解释
与其它编程模式不同,android中的Activity没有main()函数.我们无法决定Activity的创建和销毁过程,Activiy的创建和销毁(即生命周期)由系统完毕,系统会在Activity的 ...
随机推荐
- 随手小代码——Python 从集合中随机抽取元素
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- Egret_时间与运行
1.加载资源 2.将显示对象添加到显示列表 /////////////*****************************动态帧频******************************** ...
- TIME_WAIT
前言 请说说你对TCP连接中time_wait状态的理解 解答: 先上TCP的状态变迁图 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一 ...
- mock数据,尽量随机,采用中间表的方式实现
开发平台上的sql不能超过1000行,而为了插入尽可能随机的数据,sql比较长---插入一行数据就需要执行80行sql,因此执行insert into mall_data.dtw_mall2_tmp ...
- 剑指offer7~10题
斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 思路:此题用递归会超内存,故直接循环. 代码: class Solution { pub ...
- qt+opencv LNK4272:library machine type 'x64' conflicts with target mathine type 'x86'
运行时报错如上图所示,原因是你使用的opencv库是64位的,qt里面使用的编译器MSVC是32位的,解决方法如下: 将构建套件修改位64bit:
- 入学java的第一天
登录http://www.oracle.com,下载JDK(J2SE) JDK 1.0,1.1,1.2,1.3,1.4 1.5(JDK5.0) 支持注解.支持泛型 1.6(JDK6.0)Server2 ...
- visual studio 2017 创建 android 本地共享库(.so) 并从 C# android 项目中调用
Developing Xamarin Android Native Applications ★★★★★ ★★★★ ★★★ ★★ ★ February 23, 2015 by Ankit Asthan ...
- Eclipse 中快捷键
Ctrl + Shift + T 查看原生类定义
- Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术
一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...