PS课程培训
电商
玩转短视频,新媒体时代流量全新玩法 启事在教诲,成事在榜样,跟着...
"5年后不会再有互联网公司,因为所有的公司都在用互联网!"李彦宏在...
北大青鸟金码学校是东莞电脑培训是东莞专业IT培训机构、东莞电脑培...
男生学什么技术有钱途? 软件开发师、网络工程师、互联网架构师、WE...
专为大学生就业而设计
新春活动页
运行(获得了焦点)、暂停(失去了焦点、但是可见)、停止(失去了焦点、不可见)。中间有可见、不可见生命周期。前台生命周期。
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 的标题栏中显示进度条不失为一个好办法,下面是实现代码:
|
现在这个社会想学电脑的人有很多,因为现在电脑已经和我们的生活息息相关了,也是不可分割的一部分了。是否有很多学生家长就想把孩子送去某一所知名的学校去学电脑呢?那么学电脑到哪里好呢?要说到在哪里学电脑好的话,那要数北大青鸟学校了!
读电脑学什么有前途?这是一个很多人都会思考的一个问题,无论是正在读书的学生还是已经毕业了的学生,都会为自己以后的前景做打算。那么读电脑学什么有前途呢?又能拿高薪,就业好,每天在舒适的环境下轻松工作呢
校园文化是学员学习生活中切身感受的文化氛围,在东莞金码,你可以在走廊上看到各种活动的图片,看到自己参加活动的照片,看到企业招聘的信
东莞北大青鸟金码学校先进的教学理念,雄厚的师资力量为您搭建高薪桥梁,同时为了加快青鸟学子快速撑握编程技能,学校拥有高配置教学电脑,
人们为了改变现状,追求自己的幸福生活,越来越多的人都选择了拼搏。那么在拼搏的路上是否真能实现自己的目标,很关键的一步便在于最初的选择,那你需要有一技之长的技术,那么在这个社会,现在学什么技术工资高,就业不用愁呢?那肯定是 学一门好的电脑专业了,高薪资,好就业,前景广阔,提升空间大。要满足这些条件的技术工作,数IT行业最合了!
现在Java培训非常热,是因为通过学习java能够快速的就业,这对于今年就业压力非常大的大学生来说,无疑是一条就业的捷径,虽然培训费动辄过万,但还是非常值得的
写自我评价的核心是:用最少的语言,突现出你最牛X的地方。语言简练,弃用套话 51job简历模板设置的自我评价字数上限是500字,折合下来是5
翻遍诸多面试攻略,一般都有这么一条金科玉律:面试一开始不能询问薪水,作为卖方市场的求职者,每次面试时我们都会谨慎言行。明明是正大光
(1)第一问:我喜欢做什么? 兴趣和喜欢是人们工作动力的源泉。为什么有的人得 到了优厚的薪酬福利,登上了理想的职位,在别人看来是
有些求职者认为自己各方面都与所应聘的职位要求相匹配,因此在被淘汰之后总是特别不解,努力回忆起每个面试环节,却始终找不到原因。是的,
在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了:一个简单的例子就是计算借书的天数,这需要...
网络弹性(cyber resilience)也称为运维弹性(operational resilience)是指网络在遇到灾难事件时快速恢复和继续运行的能力。灾难事件的范畴
Android应用可以包含,多个Activity,某个Activity可以启动另外的Activity。这些Activity采用栈结构来管理,新打开的Activity叠放在当前的Activity之上,当前的Activity停止运行。
2014年中国内地电影上映超过250部,其中7月内地电影票房36 1亿元人民币,而这相当于2008年全年的票房总额。激增的电影票房市场,竞争异常激
为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据报的发送和接收,设计用户数据报协议UD...
东莞北大青鸟学校好吗?最近很多朋友在问这个问题,要说东莞北大青鸟学校,细数下来总共两家,其中一家刚开一年不到,另外一家叫做东莞北大青鸟金码学校在2009年就成立了。
如今互联网蓬勃发展,继Java、C++、php后也不断涌现出了许多新的编程语言,例如Python、Google Go、Apple s Swift和Rust。 有许多可行且可靠的编程语言供你选择,每种语言都有各自的优点和缺点。特别是Python,因为简单易学的优势,大有后来居上的趋势。 那么问题来了,为什么现在学习Java依然如此必要?
第三届明日之星校园形象代言人大赛从2017年6月28日开启网络投票,截止7月16日00:00,58位候选人、为期18天颜值和才艺的PK,金码入围选手已
东莞普工能学电脑编程吗?不想进厂打工,想学个技术,选择了电脑编程,但担心学不会。东莞打工者小王担心自己基础差,无法学会电脑编程。但
每个孩子都是一颗花的种子,只不过每个人的花期不同。有的花,一开始就会很灿烂的绽放,有的花,需要漫长的等待。不要看着别人怒放了,自己