android应用程序组成,Android应用程序组成

android应用程序组成,Android应用程序组成_第1张图片

一个android应用程序应该由以下五个部分构成:

1.Activity

程序中Activity通常的表现形式是一个单独的界面(screen)。每个Activity都是一个单独的类,它扩充实现了Activity基础类。某些状况下,一个Activity可能会给前一个Activity返回值。

打开一个新界面后,前一个界面就被暂停,并放在历史栈中。使用者可以回溯前面已经开启的放置在历史栈中的界面。也可以从历史栈中删除没有界面价值的界面。

某个特定的Activity可以在AndroidManifest.xml文件中被指派为主Activity,从而默认的被运行。其他Activity可能被指派为在特定条件下运行。

android应用程序组成,Android应用程序组成_第2张图片

2.Intent and IntentFilters

通过一个专门的Intent类来进行界面的切换。Intent描述了程序想做哪些。其数据结构最重要的部分是动作(action)和根据既定规则处理的数据(data)。典型的操作如MAIN(Activity的入口)、PICK、VIEW、EDIT等。数据用URI表示。

一个URI对象表示了一个字符串,该字符串标明了某个实体的位置跟名称。一个Intent的涵义大致理解为对“谁”(即URI所表述的资源)“做哪些”(即必须执行的动作)。最常用的动作类别在Intent类中被定义android应用程序组成,包括ACTION_MAIN(用于表述某个Activity的主入口点)和ACTION_EDIT(用于将URI和待编辑的数据连接出来)。

Intent无需显示地选定要运行的模块或类。可以建立一个IntentFilter,并且在AndroidManifest.xml文件中登录。操作系统会满足Intent需求以及基于过滤器规则运行适当的Activity。

通常是借助解析Intent来完成Activity的切换。首先使用startActivity(myIntent)来推出新的Activity。系统考察所有安装程序的IntentFilter,然后找到与Intent匹配最好的IntentFilter所对应的Activity。新的Activity接收到Intent传来的消息,然后才被引入。解析Intent的过程出现在startActivity被即时调用时,这样做有两个好处:

android应用程序组成,Android应用程序组成_第3张图片

(1)Activity仅发出一个Intent请求,便可重用其他组建的功能。

(2)Activity可以随时被更换为有等价IntentFilter的新Activity。

使用Intent传递附加信息:Intent的Extras属性存储于Bundle对象中。Intent类还带有一系列的辅助手段来获得或修改许多常见数据类别的“名称/值”数据对。

在应用程序中使用菜单组织Activity和Intent

菜单、Activity和Intent之间的关系十分密切。同一个菜单分别以不同方式用于Activity和Intent的状况是最常用的。主菜单:它就像一个转化器,不同的菜单项用于运行不同的Activity。“钻取”(Drill-Down)菜单:它类似一个目录,每一个菜单项运行同样的Activity,但他们均传入不同的数据成为Intent的一部分。

android应用程序组成,Android应用程序组成_第4张图片

3.Service

Service是一个没有UI且长驻系统的程序。通过Context.startService()启动一个Service,用Context.bindService()方法连接至一个Service上(如果Context.startService()未开启的话,链接还可以开启它)。连接以后可以借助一个Context.startService()提供的接口与Context.startService()进行通话。

如何使用服务?

有两种方式可以提供服务:一是借助调用Context.startService()启动,调用Context.stopService()结束,通过Context.startService()可以释放参数给Service。二是通过Context.bindService()启动,调用Context.unbindService()结束,还可以调用ServiceConnection访问Service。两种方式可以混合使用,比如可以先调用startService()再调用unbindService()。

Service的生命周期:在bindService()后,Service就跟调用bindService()的进程同生共死,也就是说当调用bindService()的进程死了,那么它bind的Service也要跟着被结束。也可以调用unbindService()让Service结束。

android应用程序组成,Android应用程序组成_第5张图片

【注意】:两种方法混合使用时,例如你调用startService()了,我调用bindService()了,只有当你调用stopService()并且我也调用unbindService()时android应用程序组成,这个Service才会被结束。

4.Content Provider

应用程序要把数据放到一个SQLite格式文件里,或者储存在其它有效设备里。如果你想使其它程序无法使用自己程序的数据,ContentProvider就很有用了。ContentProvider是一个实现了一系列标准方式的类,这个类使得其它程序无法储存、读取某些ContentProvider可处理的数据。

5.Broadcast Intent Receiver

当应执行一些与内部事件相关的代码,就或许应该使用IntentReceiver,IntentReceivers没有UI,它们使用NotificationManager来通知客户一些事情出现了。IntentReceiver在AndroidManifest.xml文件中声明,不过也可以用方式Context.registerReceiver()来声明。程序不必要仍然运行来等待IntentReceiver被调用,当一个IntentReceiver被触发时,如果必须的话,系统自然会开启你的程序。程序也可以借助Context.broadcastIntent()来发送自己的Intent广播给其它程序。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-140812-1.html

你可能感兴趣的:(android应用程序组成)