版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android移动应用基础第2章Activity、Intent、资源使用目标:2.1什么是Activity2.2Activity的生命周期2.3Intent在不同Activity之间实现跳转2.4资源创建与使用
时间:6学时教学方法:PPT讲解2.1Android组件-1/4组件是可以调用的基本功能模块,Android应用程序就是由组件组成的Android系统有四个重要的组件,分别是Activity、Service、BroadcaseReceiver和ContentProvider2.1Android组件-2/4ActivityActivity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动在界面上的表现形式:全屏窗体,非全屏悬浮窗体,对话框ServiceService用于没有用户界面,但需要长时间在后台运行的应用2.1Android组件-3/4ContentProviderContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据私有数据可以是存储在文件系统中的文件,也可以是SQLite中的数据库Android系统内部也提供一些内置的ContentProvider,能够为应用程序提供重要的数据信息BroadcaseReceiverBroadcaseReceiver是用来接受并响应广播消息的组件不包含任何用户界面可以通过启动Activity或者Notification通知用户接收到重要信息Notification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个持久的图标2.1Android组件-4/4组件生命周期所有Android组件都具有自己的生命周期,是从组件建立到组件销毁的整个过程在生命周期中,组件会在可见、不可见、活动、非活动等状态中不断变化第2章Activity、Intent、资源使用目标:2.1什么是Activity2.2Activity的生命周期2.3Intent在不同Activity之间实现跳转2.4资源创建与使用
时间:6学时教学方法:PPT讲解2.2Activity生命周期-1/11Activity生命周期Activity生命周期指Activity从启动到销毁的过程Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态活动状态,Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡非活动状态不在以上三种状态中的Activity则处于非活动状态2.2Activity生命周期-2/11Activity的四种状态的变换关系图2.2Activity生命周期-3/11Activity栈遵循“后进先出”的规则事件的回调函数2.2Activity生命周期-4/11publicclassMyActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState);protectedvoidonStart();protectedvoidonRestart();protectedvoidonResume();protectedvoidonPause();protectedvoidonStop();protectedvoidonDestroy();}android:theme="@android:style/Theme.Dialog"2.2Activity生命周期-5/11
2.2Activity生命周期-6/112.2Activity生命周期-7/11全生命周期全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()使用者通常在onCreate()中初始化Activity所能使用的全局资源和状态,并在onDestroy()中释放这些资源在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进函数的调用顺序:onCreate()→onStart()→onResume()→onPause()→onStop()→onDestroy()调用onCreate()函数分配资源调用onStart()将Activity显示在屏幕上调用onResume()获取屏幕焦点调用onPause()、onStop()和onDestroy(),释放资源并销毁进程可视生命周期可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()函数的调用顺序:
onSaveInstanceState()→onPause()→onStop()→onRestart()→onStart()→onResume()调用onSaveInstanceState()函数保存Activity状态调用onPause()和onStop(),停止对不可见Activity的更新调用onRestart()恢复需要界面上需要更新的信息调用onStart()和onResume()重新显示Activity,并接受用户交互2.2Activity生命周期-8/11活动生命周期活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码函数调用顺序如下:onSaveInstanceState()→onPause()→onResume()调用onSaveInstanceState()保存Activity的状态调用onPause()停止与用户交互调用onResume()恢复与用户的交互某次输出:scanf在使用时需要变量的地址更让我们头疼2.2Activity生命周期-9/11Activity生命周期的事件回调函数函数说明onCreate()Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。onStart()当Activity显示在屏幕上时,该函数被调用。onRestart()当Activity从停止状态进入活动状态前,调用该函数。onResume()当Activity能够与用户交互,接受用户输入时,该函数被调用。此时的Activity位于Activity栈的栈顶。此方法是获取Activity运行所需资源的最佳方法,非常适合用于启动音频、视频、动画。onPause()当Activity进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。应该终止在onResume方法中播放的视频等其他资源,关闭Cursor对象等。此方法是Activity在后台最后一次能够有机会进行清理工作、释放无需资源地方,需要保存未提交的数据。onStop()当Activity进入停止状态时,该函数被调用。onDestroy()在Activity被终止前,即进入非活动状态前,该函数被调用。2.2Activity生命周期-10/11避免Activiy对象被销毁在低内存资源的情况下,Android系统会终止任何一暂停、停止或销毁的Activity进程,这意味着不处于前台的Activity都可能被关闭.如果ActivityonPause()方法调用后被关闭,那么他的onStop()和onDestory()方法可能不会被调用,在onPause()方法中释放越多的资源,转入后台的Activity被终止的可能性越小.在onDestory中销毁静态Activity数据.当一个Activity呗销毁,onDestroy()方法将被调用,在下面两种情况下回被回调:Activity自然的完成了它的生命周期,或者由于资源占用的原因被Android操作系统终止.2.2Activity生命周期-11/11第2章Activity、Intent、资源使用目标:2.1什么是Activity2.2Activity的生命周期2.3Intent在不同Activity之间实现跳转2.4资源创建与使用
时间:6学时教学方法:PPT讲解2.3.1Intent(意图)-1/3Intent(意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件Intent是对一次将要进行的操作的抽象描述我们使用Intent启动一个Activity、Service、Boradcast等,并进行数据的传递Intent可以划分成显式意图和隐式意图。显式意图:调用Intent.setComponent()或Intent.setClass()方法指定了组件名或类对象的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。隐式意图:Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。IntentFilter(过滤器)其实就是用来匹配隐式Intent的,如果IntentFilter定义的动作、类别、数据(URI和数据类型)与Intent匹配,就会使用IntentFilter所在的组件来处理该Intent。想要接收使用startActivity()方法传递的隐式意图的活动必须在它们的意图过滤器中包含"ent.category.DEFAULT"2.3.1Intent(意图)-2/3Intenti=newIntent();i.setAction(Intent.ACTION_CALL);i.setData(Uri.parse("tel:222"));startActivity(i);Intenti=newIntent();i.setAction(Intent.ACTION_SENDTO);i.setData(Uri.parse("smsto:5554"));i.putExtra("sms_body","aaaaaaaaaaaaaaaa");startActivity(i);Intenti3=newIntent(Intent.ACTION_VIEW,Uri.parse(""));startActivity(i3);打开权限2.3.1Intent(意图)-3/32.3.2打开新的Activity,传递参数//传递数据 Intentintent=newIntent(MainActivity.this,NewActivity.class) Bundlebundle=newBundle();//该类用作携带数据bundle.putString("name",“xxxx"); bundle.putInt("age",4); intent.putExtras(bundle);//附带上额外的数据 startActivity(intent);//获取数据 Bundlebundle=this.getIntent().getExtras(); Stringname=bundle.getString("name"); intage=bundle.getInt("age");Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。Bundle的内部实际上是使用了HashMap<String,Object>类型的变量来存放putXxx()方法放入的值2.3.3为Intent附加数据的两种方法第一种写法,用于批量添加数据到Intent: Intentintent=newIntent(); Bundlebundle=newBundle();//该类用作携带数据 bundle.putString("name",“xxxxxx"); intent.putExtras(bundle);//为意图追加额外的数据,意图原来已经具有的数据不会丢失,但key同名的数据会被替换第二种写法:这种写法的作用等价于上面的写法,只不过这种写法是把数据一个个地添加进Intent,这种写法使用起来比较方便,而且只需要编写少量的代码。 Intentintent=newIntent(); intent.putExtra("name",“xxxxx"); Intent提供了各种常用类型重载后的putExtra()方法,在putExtra()方法内部会判断当前Intent对象内部是否已经存在一个Bundle对象,如果不存在就会新建Bundle对象,以后调用putExtra()方法传入的值都会存放于该Bundle对象2.3.4Activity关闭后返回的数据-1/3在Activity中得到新打开Activity关闭后返回的数据,需要使用系统提供的startActivityForResult(Intentintent,intrequestCode)方法打开新的Activity,新的Activity关闭后会向前面的Activity传回数据,为了得到传回的数据在前面的Activity中重写onActivityResult(intrequestCode,intresultCode,Intentdata)方法://第一个参数为请求码,即调用startActivityForResult()传递过去的值 //第二个参数为结果码,结果码用于标识返回数据来自哪个新Activity@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ Stringresult=data.getExtras().getString(“result”)); //得到新Activity关闭后返回的数据}2.3.4Activity关闭后返回的数据-2/3使用startActivityForResult(Intentintent,intrequestCode)方法打开新的Activity,新Activity关闭前需要向前面的Activity返回数据需要使用系统提供的setResult(intresultCode,Intentdata)方法实现:
Intentintent=newIntent();//数据是使用Intent返回
intent.putExtra(“result”,“xxxxx”);//把返回数据存入Intent setResult(RESULT_OK,intent);//设置返回数据
setResult()方法的第一个参数值可以根据业务需要自己定义2.3.4Activity关闭后返回的数据-3/3 Buttonbtn1=(Button)findViewById(R.id.button1); btn1.setOnClickListener(newOnClickListener(){ @Override public
voidonClick(Viewv){ Urinumber=Uri.parse("tel:1234"); Intenti=newIntent(Intent.ACTION_CALL,number); startActivity(i); }});第2章Activity、Intent、资源使用目标:2.1什么是Activity2.2Activity的生命周期2.3Intent在不同Activity之间实现跳转2.4资源创建与使用
时间:6学时教学方法:PPT讲解2.4.1管理应用程序资源-1/2所有应用程序都有代码指令和数据构成Andriod工程中,资源文件和Java类文件时分开存储的。大多数常见的资源类型被存储于XML中Android资源目录的层级结构:所有资源存放在res目录中/res/drawable-*/图形资源文件/res/layout/用户界面资源/res/values/简单数据,字符串字符值等2.4.1管理应用程序资源-2/2/res/values/strings.xml字符串/res/values/colors.xml颜色/res/values/dimens.xml尺寸/res/drawable/图像.png.jpg或xml定义的图形/res/anim/xxxxx.xml补间动画<set><apha><scale>…/res/drawabe/xxx.xml逐帧动画<animation-list><item>/res/menu/helpmenu.xml菜单/res/xml/data.xmxml文件
/res/raw原始文件xx.mp3xx.mp4xx.txt/res/layout布局/res/values样式和主题<style>2.4.2设定和使用资源-1/7使用string字符串资源: <resources> <stringname="app_name">HelloAndroid</string> </resources>在应用程序访问字符串资源 Stringapp_name=getResources().getString(R.string.app_name);2.4.2设定和使用资源-2/7使用string字符串数组资源:在应用程序访问字符串资源Stringflavors[]=getResources().getStringArray(R.array.flavors);<resources>
<string-arrayname="flavors">
<item>java</item>
<item>android</item>
</string-array></resources>2.4.2设定和使用资源-3/7使用颜色Android可以存储RGB颜色值,RGB颜色值以#开头,还可以给出alpha值以控制透明度.#RGB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东警官学院《生物质能转化原理与技术》2023-2024学年第一学期期末试卷
- 广东江门中医药职业学院《实验安全与现场急救》2023-2024学年第一学期期末试卷
- 广东工商职业技术大学《广告设计与策划》2023-2024学年第一学期期末试卷
- 广东财贸职业学院《英语综合技能2》2023-2024学年第一学期期末试卷
- 《危害申报管理》课件
- 感恩企业培训课件
- 《化学动力学的任务》课件
- 共青科技职业学院《工业机器人应用》2023-2024学年第一学期期末试卷
- 赣州职业技术学院《中国通史现代》2023-2024学年第一学期期末试卷
- 皮带系统安全培训课件
- 壮族文化的灵魂广西花山岩画
- 概算实施方案
- 单片机英文资料+英文文献
- CF5061GXJYNKR管线加油车使用说明书-
- (51)-春季助长小儿推拿探秘
- 中国古典文献学(全套)
- 内燃机车常见故障分析及处理1733
- 谈心谈话记录表 (空白表)
- GB/T 39879-2021疑似毒品中鸦片五种成分检验气相色谱和气相色谱-质谱法
- Unit10单元基础知识点和语法点归纳 人教版英语九年级
- 自控原理课件1(英文版)
评论
0/150
提交评论