您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

Android应用步调阐发

发布日期:2011-04-11

一个Android应用步调通常有下面4个组件构成:

  • Activity
  • Intent Receiver
  • Service
  • Content Provider

不是每个步调都有这4个,大概你的步调只利用了此中一部分。
一旦你决定步调包括哪些组件时,你得在AndroidManifest.xml文件中列出它们。这是个XML文件,它包括你步调所定义的组件,这些组件的结果和必备的条件。你可以访问
Android manifest在线文档得到此文件的过细形貌。

Activity

注:专闻名词不翻。

Activities 是4个组件中最常用的。 步调中,Activity通常的表现情势是一个单独的界面(screen)。每个Aactivity都是一个单独的类,它扩展实现了Activity底子类。这个类表现为一个由Views构成的利用者界面,并相应变乱。大多数步调有多个Activity。比喻,一个纯笔墨文件信息步调有这么几个界面:表现讨论人列表界面,写信息界面,查察信息界面大概设置界面等。每个界面都是一个Activity。切换到另一个界面便是加载一个新的Activity。某些环境下,一个Activity大概会给前一个Activity返回值——比喻,一个让利用者选择相片的Activity会把选择到的相片返回给其调用者。

打开一个新界面后,前一个界面就被停息,并放入汗青栈中(界面切换汗青栈)。利用者可以回溯前面已经打开的存放在汗青栈中的界面。也可以从汗青栈中删除没有界面价格的界面。Android在汗青栈中生存步调运行孕育孕育产生的全部界面:从第一个界面,到着末一个。

Intent and Intent Filters

Android通过一个专门的Intent类来举行界面的切换。Intent形貌了步调想做什么(intent,n.意图, 目标, 意向)。数据布局的2个最告急的部分是利用(action)与根据既定端正处理惩罚处罚的数据(data)。典范的利用是MAIN (Activity的入口),VIEW,PICK,EDIT,等等。数据用URI表现。比喻,查察或人的讨论信息,你须要创建一个Intent,利用VIEW利用,数据则是一个指向此人的URI。

有个干系的类叫IntentFilter。Intent是一个恳求来做什么变乱;IntentFilter则形貌了一个Activity(或下文的IntentReceiver)能处理惩罚处罚什么意图。表现或人讨论信息的Activity利用了一个IntentFilter,便是说它知道如那边理处罚应用到此人数据的VIEW利用。Activities在AndroidManifest.xml文件中利用IntentFilters。

通过阐发Intents来完成Activity的切换。利用startActivity(myIntent)来启用新的Activity。体系观察全部摆设步调的IntentFilters,然后找到与myIntent结婚最好的IntentFilters所映射的Activity。这个新Activity接到Intent传来的消息,并因此被启用。阐发Intents的进程孕育产生在startActivity被及时调用时,如许做有2个好处:

  • Activities仅发出一个Intent恳求,便能重用其他组件的结果
  • Activities 可以随时被调换为有等价IntentFilter的新Activity

Intent Receiver

当你想实行一些与外部变乱干系的代码时,比如来电响铃时,数据网络可用时,大概半夜时做些变乱,你大概须要利用IntentReceiver了。IntentReceivers没有UI,只管它们利用NotificationManager来关照利用者一些好玩的变乱孕育产生了。IntentReceivers在AndroidManifest.xml文件中声明,不过你可以利用Context.registerReceiver()来声明。你的步调没有须要运行来等待IntentReceivers被调用。当一个IntentReceiver被触发时,怎样须要的话,体系天然会启动你的步调。步调也可以通过Context.broadcastIntent()来发送本身的Intent广播给其他步调。

Service

Service是一个没有UI且长驻体系的代码。最佳例子媒体播放器从播放列表中播放歌曲。媒体播放器步调中,大概有一个或多个Activities让利用者选择歌曲播放。然而,在背景播放歌曲就无需Activity干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉干涉了,由于利用者渴望在音频播放同时可以大概切换到其他界面。既然如许,媒体播放器Activity须要通过Context.startService()启动一个Service,这个Service在背景运行以保持连续播放音频。在媒体播放器被封闭之前, 体系会保持音频背景播放Service的正常运行。(Life Cycle of an Android Application提供更多有关Service的信息。) 请过细,你可以用Context.bindService()要领连接到一个Service上(要是Service未运行的话,连接后,还会启动它)。连接上后,你就可以通过一个Service提供的接口与Service举行通话。对音频Service来说,则提供了停息,重放等结果。

Content Provider

应用步调把数据存放一个SQLite数据库格局文件里,大概存放在其他有效配置里。要是你想让其他步调可以大概利用你本身步调的数据,Content Provider就很有效了。Content Provider是一个实现了一系列标准要领的类,这个类使得其他步调能存储、读取某种Content Provider可处理惩罚处罚的数据。想得到更多关于Content Provider的信息,请查察Accessing Content Providers