年味第三届摄影大赛
我想大声说,站在互联网的风口上,学个好专业,走个好方向,我的青...
一个有自己主意的孩子才是有前途的孩子
软件开发师、网络工程师、互联网架构师、WEB全栈工程师、前端开发工...
高中生学什么技术好好呢?话说女怕嫁错郎、男怕入错行,选择比努力...
学电脑、计算机培训就到北大青鸟东莞金码学校 大学学历、高薪就业,...
选择便宜且教学质量不打折的北大青鸟就到东莞北大青鸟金码校区,是专...
女生学什么技术好?
运行(获得了焦点)、暂停(失去了焦点、但是可见)、停止(失去了焦点、不可见)。中间有可见、不可见生命周期。前台生命周期。
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 的标题栏中显示进度条不失为一个好办法,下面是实现代码:
|
项目实训招募啦~~北大青鸟东莞金码学校合作企业、学术团队举行项目实训招募活动,让学员有机会根据自己的喜好选择项目实训,参与项目的开发。
清晨微风习习,带着初秋的些微凉意。而在东莞市中心的市政广场上,北大青鸟万人晨练签名活动,正火热进行,和以往不同的是,广场上多了一条彩色横幅,“早安青鸟,北大青鸟万人晨练,我们在这里!”这是东莞金码的学员宣言,也是学员们青春正能量的激荡。
北大青鸟东莞金码学校不定期组织学员开展精彩的文娱活动,通过K歌比赛、晚会节目表演、艺术节活动,以及平时的文娱表演,让学员可以通过各种活动展现自
人们为了改变现状,追求自己的幸福生活,越来越多的人都选择了拼搏。那么在拼搏的路上是否真能实现自己的目标,很关键的一步便在于最初的选择,那你需要有一技之长的技术,那么在这个社会,现在学什么技术工资高,就业不用愁呢?那肯定是 学一门好的电脑专业了,高薪资,好就业,前景广阔,提升空间大。要满足这些条件的技术工作,数IT行业最合了!
北大青鸟东莞金码学校为学生提供住宿条件,干净的楼房,有专人管理打扫,安静环境氛围好,学生可根据意愿选择是否在校住宿。
一、先把工作做好不要急着去融入一个新团队,首先把工作做好,这才是职场生存的第一步,有了生存才去谈融入团队。二、主动参与甚至发起组织
写自我评价的核心是:用最少的语言,突现出你最牛X的地方。语言简练,弃用套话 51job简历模板设置的自我评价字数上限是500字,折合下来是5
大学毕业找工作,你选择了哪个城市作为自己职业生涯的出发点?最近正值毕业求职季,前程无忧论坛(bbs 51job com)用这个话题带网友们回忆了往
一个月内找到6份工作,其中经历了四次群面,且每次都以出色的表现通过这一关。这个牛人就是南京大学数学系大四学生吴新雨。记者从前晚结束
囧事一:过于职业格格不入话说,人算不如天算。当你费尽心机把自己打扮地相当职业,满怀信心地走到应聘公司门口,却发现,公司的进出的员工
移动浪潮的发展也推动了Web技术大幅前进,愈来愈多的新技术不断出现,比如HTML5里面的电池API、振动API等有关移动的新功能不断增加。据研究人员发现,这些新技术也给开发者们带来了不少烦恼。
预 备测试环境: AMD 毒龙1 4G OC 1 5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1 4 1+Eclipse 2 1+Resin 2 1 8,
q. 1 : physical disk resources in an oracle database are1. control files2. redo log files3. data files4. all of...
Code Perspective是一个强大的代码可视化工具,可以帮助开发者查看 Net应用程序的代码和实时运行情况。对于开发者而言,通过Code Perspec
用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显...
随着社会日新月异的发展,随着科技的发达,网联网时代已经遍布世界,现在已经是电子化,网络化的世界了,所以电脑与我们人类已经是生活息息相关的东西了。现在世界各地每个地方都有开展电脑培训机构,电脑学校招生,各色各样的电脑培训学校,让每一个学生,家长,想学好电脑技术的人,提供了一个很好的环境进行学习与培养。
2017年高考即将来临,又有一部分考生开始为学什么专业开始犯愁。在选择专业的时候,考生们通常都会考虑到自身的性格是否适合这门职业,毕竟
11月2日,风和日丽的上午,东莞北大青鸟再次掀开了超级演说家精彩选拔赛,此次复赛选拔仍由青鸟学社组织,在莞城金码校区的报告厅举行。一
没剁手没关系,还有圣诞元旦的“双旦”节、春节、情人节、618、99节、下一个双十一,还有线下购物,总有一个场景你会剁手。在剁手买买买的时候,细心的朋友可能会发现,这商品还“杀熟”的感觉?杀熟,简单的来说,就是不同人看到的价格不一样,老用户看到的价格比新用户贵