1024疯狂程序员节日,节日狂欢,智取豪礼
电商公开着陆页
初中毕业也能成为高薪技术人才(人物背景要用初高中学生的) 深圳北大...
新媒体
学JAVA语言 做大数据时代架构师 0基础冲击30W年薪
选学校,选专业,就选fun88体育
工厂普工?厨师?汽车维修?电焊工?工地施工员?销售?保安?快递...
学互联网营销 实现企业跨越式发展 4月快速打破流量端口
运行(获得了焦点)、暂停(失去了焦点、但是可见)、停止(失去了焦点、不可见)。中间有可见、不可见生命周期。前台生命周期。
1
2
3
4
5
6
7
8
|
public class OurActivity extends Activity { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); } |
在上图中,Activity有三个关键的循环:
整 个的生命周期,从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态, 在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在 onCreate()中创建线程,在onDestory()中停止线程。
可见的生命周期,从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交 互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致 UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可 以在可见和隐藏之间转换。
前台的生命周期,从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有Activity的最前面,和用户进行 交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个Activity处理结果被分发时,当 一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。
setContentView(R.layout.main); |
当然,也可从 savedInstanceState中读我们保存到存储设备中的数据,但是需要判断savedInstanceState是否为 null,因为 Activity 第一次启动时并没有数据被存贮在设备中:
if(savedInstanceState!=null){ savedInstanceState.get("Key"); } |
|
AndroidManifest.xml 中通过
|
Activity.startActivity()方法可以根据传入的参数启动另外一个 Activity:
Intent intent =new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); |
当然,OtherActivity同样需要在 AndroidManifest.xml 中定义。
在 Android 中,不同的 Activity 实例可能运行在一个进程中,也可能运行在不同的进程中。因此我们需要一种特别的机制帮助我们在 Activity 之间传递消息。Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。
在上面的实例中通过 Activity. startActivity(intent)启动另外一个 Activity 的时候,我们在 Intent 类的构造器中指定了“收件人地址”。
如果我们想要给“收件人”Activity 说点什么的话,那么可以通过下面这封“e-mail”来将我们消息传递出去:
|
那么“收件人”该如何收信呢?在 OtherActivity类的 onCreate()或者其它任何地方使用下面的代码就可以打开这封“e-mail”阅读其中的信息:
Intent intent =getIntent();// 收取 email Bundle bundle =intent.getBundleExtra("key");// 打开 email bundle.getBoolean("boolean_key");// 读取内容 bundle.getString("string_key"); |
上面我们通过 bundle对象来传递信息,bundle维护了一个 HashMap
|
接收:
Intent intent=getIntent(); intent.getBooleanExtra("boolean_key",false); intent.getStringExtra("string_key"); |
SharedPreferences 使用 xml 格式为 Android 应用提供一种永久的数据存贮方式。对于一个 Android 应用,它存贮在文件系统的 /data/ data/your_app_package_name/shared_prefs/目录下,可以被处在同一个应用中的所有 Activity 访问。Android 提供了相关的 API 来处理这些数据而不需要程序员直接操作这些文件或者考虑数据同步问题。
|
Android 提供了包括 SharedPreferences 在内的很多种数据存贮方式,比如 SQLite,文件等,程序员可以通过这些 API 实现 Activity 之间的数据交换。如果必要,我们还可以使用 IPC 方式。
Intent Filter 描述了一个组件愿意接收什么样的 Intent 对象,Android 将其抽象为 android.content.IntentFilter 类。在 Android 的 AndroidManifest.xml 配置文件中可以通过
当 程序员使用 startActivity(intent) 来启动另外一个 Activity 时,如果直接指定 intent 了对象的 Component 属性,那么 Activity Manager 将试图启动其 Component 属性指定的 Activity。否则 Android 将通过 Intent 的其它属性从安装在系统中的所有 Activity 中查找与之最匹配的一个启动,如果没有找到合适的 Activity,应用程序会得到一个系统抛出的异常。这个匹配的过程如下:
图 4. Activity 种 Intent Filter 的匹配过程
Action 匹配
Action 是一个用户定义的字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其
|
如果我们在启动一个 Activity 时使用这样的 Intent 对象:
Intent intent =new Intent(); intent.setAction("com.zy.myaction"); |
那么所有的 Action 列表中包含了“com.zy.myaction”的 Activity 都将会匹配成功。
Android 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量的方式定义在 android.content. Intent中,以“ACTION_”开头。我们可以在 Android 提供的文档中找到它们的详细说明。
一个 Intent 可以通过 URI 携带外部数据给目标组件。在
mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。如下:
|
如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。
Android 内置了方向感应器的支持。在 G1 中,Android 会根据 G1 所处的方向自动在竖屏和横屏间切换。但是有时我们的应用程序仅能在横屏 / 竖屏时运行,比如某些游戏,此时我们需要锁定该 Activity 运行时的屏幕方向,
|
要使一个 Activity 全屏运行,可以在其 onCreate()方法中添加如下代码实现:
// 设置全屏模式 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 去除标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); |
为了更友好的用户体验,在处理一些需要花费较长时间的任务时可以使用一个进度条来提示用户“不要着急,我们正在努力的完成你交给的任务”。如下图:
在 Activity 的标题栏中显示进度条不失为一个好办法,下面是实现代码:
|
有很多的学生都有问过这样一个问题,说零基础能学电脑吗?我什么都不会,对电脑一点都不熟悉,我可以学习电脑吗?我可以这么回答你们,零基础是可以学电脑的,而且不用担心学不会,关键是在于你找了一个怎么样的培训学校,fun88体育东莞金码学校就是一个针对课程针对是零起点的学校。
人们为了改变现状,追求自己的幸福生活,越来越多的人都选择了拼搏。那么在拼搏的路上是否真能实现自己的目标,很关键的一步便在于最初的选择,那你需要有一技之长的技术,那么在这个社会,现在学什么技术工资高,就业不用愁呢?那肯定是 学一门好的电脑专业了,高薪资,好就业,前景广阔,提升空间大。要满足这些条件的技术工作,数IT行业最合了!
奔跑吧金码学子活动由东莞fun88体育主办,由校区师生参与,在东莞市虎英公园举行了奔跑吧金码的大型活动。这场活动分为五关,参赛师生3人一
许多合作企业会根据用人需求和企业发展情况不定期到fun88体育东莞金码学校现场招聘IT专业人才,上千家合作企业遍布全国各地,学员根据自己的
政府认证+ 国际龙头企业认证+ 大学本科学历 fun88体育毕业证书介绍fun88体育证书是针对fun88体育学员经过fun88体育各授权培训中心的技能与素
职场上,我们每天和同事、领导之间难免有话要说。说什么、怎么说,什么话能说,什么话不能说,都应讲究。可以说,在职场上说话也是一种
很多学生求职难,不是因为素质不好、能力不行、经验不够被刷掉,而是因为简历不够闪!找出写简历的突破口、切入点,才能在HR的筛选过程中脱
一些职业限制因素是我们无法掌控的。新产品发布有可能被经济不景气拖累,你的导师在公司重组中失业,你必须在高层另找个新的获胜者作为导师
面试是整个应聘过程中最重要、最直接的环节,相比于测评、笔试、背景调查等环节,面试是候选人与雇主直接面对面交流的机会,把握住面试机会
据美国竞争力研究院华人商业精英辅助计划人力资源测评中心调查显示:企业经营者重视管理策略及方针,善用每一分资本以创造最大获益,每一个
对于一个24x7的系统来说,这些是非常重要的,系统宕机时间的增加不仅影响着公司的形象,还会影响公司的效益;采用dataguard,数据的安全性相当有保障,物理备用库可以在最短的时间完成故障切换
在当前的市场环境下,几乎所有的医药企业都面临着营销模式无法突破的困惑,为了完成季度、年度任务,只有不断地通过渠道往下游经、分销商压...
又该是更换密码的时候了!最新的消息显示,俄罗斯的一个网络黑客团伙带来了堪称史上最大规模之一的互联网数据安全威胁。这一团伙收集了约 1
渠道作为联系客户和制造商的利益通路之一,既可为制造商提供利益,也为客户提供包括服务在内的产品。那么渠道管理的定义又是什么呢?简言之
IN :IN写出来的SQL比较容易写及清晰易懂但是性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE 试...
在东莞学什么技术好?东莞俗称世界工厂,大大小小的工业区,都布局了各种行业的工厂,有很多年轻人初中毕业后就来到了这里打工。有一部分人
在加入fun88体育之前,我是个忙碌在生产线上的拉长,虽然职位的关系让我不是在一线,但每天仍旧很累,而且感觉未来很迷茫,总也看不到光亮。
2015高考分数已经放榜,高考分数太低怎么办?东莞fun88体育金码校区职业规划专家表示高考是许多人心目中重要的一次考试,分数高低,是个人学
2020年,IT行业疯狂内卷,面试要求越来越高。我不是很满足目前公司的现状,所以,期间尝试过几次大厂稍微高阶的面试,发现难度非常大。这些
3月19日,在春光灿烂的3月,这个正值转行、找工作的旺季,为答谢社会各界长期以来的关注与支持,fun88体育东莞金码学校在东莞市高埗镇中汇文