2019年上个与众不同的大学,不仅为学历,更为了学到实用本领
专为大学生就业而设计
网络营销
中专学什么技术发展好 学IT技术,做企业争抢紧缺人才! ...
学什么技术有前途?
2024初中生学什么
工厂普工?厨师?汽车维修?电焊工?工地施工员?销售?保安?快递...
北大青鸟职业教育一线品牌,真实企业项目实训
运行(获得了焦点)、暂停(失去了焦点、但是可见)、停止(失去了焦点、不可见)。中间有可见、不可见生命周期。前台生命周期。
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 的标题栏中显示进度条不失为一个好办法,下面是实现代码:
|
转眼又到了一年一次的高考中考的时候到了,这个夏天你有没有考上你理想的大学或者心仪的高中学校呢?接下来又如何安排你自己的学习路线呢?对于平时成绩不理想的学生来说,是时候该考虑一下,下一步学什么电脑技术对自己的前途有帮助了。那么,学电脑学什么好就业呢?
东莞北大青鸟金码学校先进的教学理念,雄厚的师资力量为您搭建高薪桥梁,同时为了加快青鸟学子快速撑握编程技能,学校拥有高配置教学电脑,
奔跑吧金码学子活动由东莞北大青鸟主办,由校区师生参与,在东莞市虎英公园举行了奔跑吧金码的大型活动。这场活动分为五关,参赛师生3人一
有很多的学生都有问过这样一个问题,说零基础能学电脑吗?我什么都不会,对电脑一点都不熟悉,我可以学习电脑吗?我可以这么回答你们,零基础是可以学电脑的,而且不用担心学不会,关键是在于你找了一个怎么样的培训学校,北大青鸟东莞金码学校就是一个针对课程针对是零起点的学校。
北大青鸟东莞金码每年都会举办文化艺术节,以各种活动形式贯穿其中,让学员感受到浓浓的文化艺术氛围,并亲自参与到文化节的活动中来,也是
定期反思自己的职业规划,这是十分重要且必要的。在2013年即将结束之际,也确实应该对事业提出一些值得思考的问题了。仔细思考一下你在事业
(1)第一问:我喜欢做什么? 兴趣和喜欢是人们工作动力的源泉。为什么有的人得 到了优厚的薪酬福利,登上了理想的职位,在别人看来是
每个人的职业生涯都有周期,其中20~40岁的这20年最为关键,可以说是职业生涯的黄金阶段。现阶段,由于经济 低 迷,企业裁员、行业萎缩等
我是XX企业的,在人才市场您求职了我们公司的XX岗位,我们想通过电话对你的基本信息进行一下核实。近日,在哈市各大人才市场的招聘企业中,
经历了浩浩荡荡的面试才知道一份工作是多么的难得,一份好工作更是弥足珍贵。开学第一周,经过十多场面试,武汉长江工商学院金融专业毕
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,
将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统:...
大数据时代,研究大数据的IT 厂商把研究重心放在优化大数据系统软件架构、优化业务逻辑、优化数据分析算法、优化节点性能等方向,而忽略了大数据环境基础设置中网络环节的评估和优化。本文介绍了思科公司在Hadoop 集群环境下的网络架构设计与优化经验。
大数据时代,由于数据体量巨大、分布广泛给安全问题带来了新的挑战。在真实空间和数据空间之间存在着相对应的、平行的关系,在真实空间里的
首先你应该是在用 PHP 5 3 以上的版本,如果 PHP 版本在这之下,是时候该升级了。我建议如果有条件,最好使用最新的版本。 1
2017年的高考日即将来临,越来越多的考生开始担心自己的成绩能否考上理想的大学,不管是成绩好的还是成绩不好的,担忧都是难免的,这里为了
千千万万个家庭,每个家庭都有自己的特殊情况,也应该有独特的教育方式,在教育这件事上,我们不能一刀切,家校合作,让孩子们不断的体验进步带来的成就感,这样他们就会有不断的动力去进步!
2016年12月29日,丽日蓝天的下午,北大青鸟东莞金码2017年度元旦文艺汇演暨优秀学员表彰大会在东莞宾馆圆满举行。本次年会以绽放青春,放飞
据科技博客网站Gizmodo报道,谷歌街景为了识别数以亿计的街道门牌号,建立了一个类似动物神经系统的庞大计算网络。 谷歌街景功能的
相信不少的大学生刚毕业或者毕业不久后,都会觉得大学里面学到的专业知识在工作中基本都用不上。不少人在这时候就把目光投向了薪资高待遇好