基于Android平台系统的旅程航班动态通知系统及其方法

文档序号:6508734阅读:202来源:国知局
基于Android平台系统的旅程航班动态通知系统及其方法
【专利摘要】本发明基于Android平台系统的旅程航班动态通知系统及其方法开发四大组件分别是:活动(Activity):用于表现功能;服务(Service):后台运行服务,不提供界面呈现;广播接收器(BroadcastReceiver):用于接收广播;内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库;Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一;在Android的程序当中,Activity一般代表手机屏幕的一屏;如果把手机比作一个浏览器,那么Activity就相当于一个网页;在Activity当中可以添加一些Button、Checkbox等控件;可以看到Activity概念和网页的概念相当类似。
【专利说明】 基于Android平台系统的旅程航班动态通知系统及其方法
[0001](一)领域
本发明基于Android平台系统的旅程航班动态通知系统及其方法属于信息应用领域。
[0002](二)简介
Android 一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
[0003]Android 一词最早出现于法国作家利尔亚当(Auguste Villiers deI’ Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L’ eve future)中。他将外表像人的机器起名为Android。
[0004]Android的Logo是由Ascender公司设计的。其中的文字使用了 Ascender公司专门制作的称之
为“Droid ”的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了 PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。
[0005]2012年7月美国科技博客网站BusinessInsider评选出二i^一世纪十款最重要电子产品,Android操作系统和iPhone等榜上有名。
[0006]Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了 Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
[0007]Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Androd分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
[0008]本发明基于Android平台系统的旅程航班动态通知系统及其方法中Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
[0009]开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
[0010]本发明基于Android平台系统的旅程航班动态通知系统及其方法其中包括;丰富而又可扩展的视图,可以用来构建应用程序,它包括列表,网格,文本框,按钮,甚至可嵌入的web浏览器。
[0011]内容提供器使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据
资源管理器提供非代码资源的访问,如本地字符串,图形,和布局文件。
[0012]通知管理器使得应用程序可以在状态栏中显示自定义的提示信息。
[0013]活动管理器用来管理应用程序生命周期并提供常用的导航回退功能。
[0014]本发明基于Android平台系统的旅程航班动态通知系统及其方法中Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:
系统C库-一个从BSD继承来的标准C系统函数库Libc ),它是专门为基于Embedded Iinux的设备定制的。
[0015]媒体库-基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264, MP3, AAC, AMR, JPG, PNG
ο
[0016]Surface Manager -对显不子系统的管理,并且为多个应用程序提供了 2D和3D图层的无缝融合。
[0017]LibffebCore - 一个最新的web浏览器引擎用,支持航班和一个可嵌入的web视图。
[0018]本发明基于Android平台系统的旅程航班动态通知系统及其方法中Android是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、Xll、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android 又以 B1nic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等。Android为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linux driver与Linux kernel彻底分开。B1nic/Libc/Kernel/ 并非标准的 Kernel header files。Android 的 Kernel header 是利用工具由Linux Kernel header所产生的,这样做是为了保留常数、数据结构与宏。
[0019]Android 的 Linux kernel 控制包括安全(Security),存储器管理(MemoryManagement),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。
[0020]APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis—样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即AndroidDalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
[0021]本发明基于Android平台系统的旅程航班动态通知系统及其方法APK文件结构一个APK文件结构为: 1.META-1NF\ (注:Jar文件中常可以看到);
2.res\ (注:存放资源文件的目录);
3.AndroidManifest.xml (注:程序全局配置文件);
4.classes, dex (注:Dalvik 字节码);
5.resources, arse (注:编译后的二进制资源文件)。
[0022]本发明基于Android平台系统的旅程航班动态通知系统及其方法在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的Windows Gadgets或者说WPF也采用了这种构架方式。
[0023]本发明基于Android平台系统的旅程航班动态通知系统及其方法中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permiss1n分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
[0024]最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
[0025]Android的HAL (硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成 Kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。
[0026]本发明基于Android平台系统的旅程航班动态通知系统及其方法操作系统与应用程序的沟通桥梁,应用分为两层:函数层和虚拟机。B1nic是Android改良Iibc的版本。Android同时包含了 Webkit,所谓的Webkit就是Apple Safari浏览器背后的引擎。Surface flinger是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为 Google 自制的 B1nic Libc0
[0027]本发明基于Android平台系统的旅程航班动态通知系统及其方法采用OpenCORE作为基础多媒体框架。Open CORE 可分 7 大块:PVPlayer、PVAuthor、Codec、PacketVideoMultimedia Framework (PVMF)、Operating System Compatibility Library (OSCL)、Common>OpenMAX0
[0028]Android 使用 skia 为核心图形引擎,搭配 0penGL/ES。skia 与 Linux Cairo功能相当,但相较于Linux Cairo, skia功能还只是雏形的。Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
[0029]Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtual Machine)。Dalvik 虚拟机是一种“暂存器型态”(Register Based)的 Java 虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
[0030]Dalvik虚拟机可以有多个实例(Instance),每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。
[0031]本发明基于Android平台系统的旅程航班动态通知系统及其方法本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。
[0032]本发明基于Android平台系统的旅程航班动态通知系统及其方法系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。
[0033]本发明基于Android平台系统的旅程航班动态通知系统及其方法安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。
[0034]本发明基于Android平台系统的旅程航班动态通知系统及其方法安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限:
拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS )地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。
[0035]一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。
[0036]本发明基于Android平台系统的旅程航班动态通知系统及其方法开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库。
[0037]Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Android的程序当中,Activity —般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity当中可以添加一些Button、Check box等控件。可以看到Activity概念和网页的概念相当类似。
[0038]一般一个Android应用是由多个Activity组成的。这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从Activity A跳转到Activity B,那么当Activity B运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。
[0039]本发明基于Android平台系统的旅程航班动态通知系统及其方法当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。
[0040]Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面的长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,打开航班,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。Service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等,总之服务嘛,总是藏在后头的。
[0041]开启Service有两种方式:
(I)Context.startService( ):Service会经历onCreate -> onStart(如果Service还没有运行,则android先调用onCreate ()然后调用onStart ();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次);StopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用StopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。注意,多次调用Context, startservice ()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService ()或者StopSelf (),他都会被停止。补充说明:传递给StartService (O的Intent对象会传递给onStart()方法。调用顺序为:onCreate —> onStart(可多次调用)一> onDestroy。
[0042](2) Context.bindService ():Service 会经历 onCreate () —>onBind (),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service 绑定在一起,Context 退出了,Srevice 就会调用 onUnbind —> onDestroyed 相应退出,所谓绑定在一起就共存亡了。
[0043]在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向技术成熟。
【权利要求】
1.开发人员也可以完全访问核心应用程序所使用的API框架;该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性);同样,该应用程序重用机制也使用户可以方便的替换程序组件; 本发明基于Android平台系统的旅程航班动态通知系统及其方法其中包括;丰富而又可扩展的视图,可以用来构建应用程序,它包括列表,网格,文本框,按钮,甚至可嵌入的web浏览器; 内容提供器使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据资源管理器提供非代码资源的访问,如本地字符串,图形,和布局文件。
2.通知管理器使得应用程序可以在状态栏中显示自定义的提示信息; 活动管理器用来管理应用程序生命周期并提供常用的导航回退功能; 本发明基于Android平台系统的旅程航班动态通知系统及其方法中Android包含一些C/C++库,这些库能被Android系统中不同的组件使用;它们通过Android应用程序框架为开发者提供服务;以下是一些核心库: 系统C库-一个从BSD继承来的标准C系统函数库Libc ),它是专门为基于Embedded Iinux的设备定制的; 媒体库-基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件;编码格式包括MPEG4,H.264, MP3, AAC, AMR, JPG, PNG ;Surface Manager -对显示子系统的管理,并且为多个应用程序提供了 2D和3D图层的无缝融合; LibffebCore - 一个最新的web浏览器引擎用,支持航班和一个可嵌入的web视图;本发明基于Android平台系统的旅程航班动态通知系统及其方法中Android是运行于Linux kernel之上,但并不是GNU/Linux ;因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、Xll、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了 ;Android 又以 B1nic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等;Android为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linux driver与Linux kernel彻底分开;B1nic/Libc/Kernel/ 并非标准的 Kernel header files ; An droid 的 Kernel header 是利用工具由Linux Kernel header所产生的,这样做是为了保留常数、数据结构与宏; Android 的Linux kernel控制包括安全(Security),存储器管理(MemoryManagement),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等;下载Android源码之前,先要安装其构建工具Repo来初始化源码;Repo是Android用来辅助Git工作的一个工具; APK是类似Symbian Sis或Sisx的文件格式;通过将APK文件直接传到Android模拟器或Android手机中执行即可安装;apk文件和sis—样,把android sdk编译的工程打包成一个安装程序文件,格式为apk ; APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip 解压后,可以看到 Dex 文件,Dex 是 Dalvik VM executes 的全称,即 Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
3.本发明基于Android平台系统的旅程航班动态通知系统及其方法APK文件结构 一个APK文件结构为: META-1NF\ (注Jar文件中常可以看到); res\ (注:存放资源文件的目录); AndroidManifest.xml (注:程序全局配置文件); classes, dex (注:Dalvik 字节码); resources, arse (注:编译后的二进制资源文件); 本发明基于Android平台系统的旅程航班动态通知系统及其方法在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的Windows Gadgets或者说WPF也采用了这种构架方式; 本发明基于Android平台系统的旅程航班动态通知系统及其方法中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permiss1n分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的; 最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限; Android的HAL (硬件抽像层)是能以封闭源码形式提供硬件驱动模块;HAL的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linuxkernel,以达成Kernel independent的概念,也让Android framework的开发能在不考量驱动程序实现的前提下进行发展。
4.本发明基于Android平台系统的旅程航班动态通知系统及其方法操作系统与应用程序的沟通桥梁,应用分为两层:函数层和虚拟机;B1nic是Android改良Iibc的版本;An droid同时包含了 Webkit,所谓的Webkit就是Apple Safari浏览器背后的引擎;Surface flinger是就2D或3D的内容显示到屏幕上;Android使用工具链(Toolchain)为Google 自制的 B1nic Libc ; 本发明基于Android平台系统的旅程航班动态通知系统及其方法采用OpenCORE作为基础多媒体框架;0pen CORE 可分 7 大块:PVPlayer、PVAuthor、Codec、PacketVideoMultimedia Framework (PVMF)、Operating System Compatibility Library (OSCL)、Common>OpenMAX ; Android使用skia为核心图形引擎,搭配OpenGL/ES ;skia与Linux Cairo功能相当,但相较于Linux Cairo, skia功能还只是雏形的;Android的多媒体数据库采用SQLite数据库系统;数据库又分为共用数据库及私用数据库;用户可通过ContentResolver类(Column)取得共用数据库; Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(Dalvik VirtualMachine) ;Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少; Dalvik虚拟机可以有多个实例(Instance),每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化;Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件; 本发明基于Android平台系统的旅程航班动态通知系统及其方法本身是一个权限分立的操作系统;在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID);系统的各部分也分别使用各自独立的识别方式;Linux就是这样将应用与应用,应用与系统隔尚开; 本发明基于Android平台系统的旅程航班动态通知系统及其方法系统更多的安全功能通过权限机制提供;权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问; 本发明基于Android平台系统的旅程航班动态通知系统及其方法安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作;这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。
5.本发明基于Android平台系统的旅程航班动态通知系统及其方法安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限;从用户角度看,一款Android应用通常会要求如下的权限: 拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人的信息、读取日程信的息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等; 一款应用应该根据自身提供的功能,要求合理的权限;用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全;如一款应用是不带广告的单机版,也没有任何附加的内容需要下载,那么它要求访问网络的权限就比较可疑。
6.本发明基于Android平台系统的旅程航班动态通知系统及其方法开发四大组件分别是:活动(Activity):用于表现功能;服务(Service):后台运行服务,不提供界面呈现;广播接收器(BroadcastReceiver):用于接收广播;内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库; Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一;在Android的程序当中,Activity 一般代表手机屏幕的一屏;如果把手机比作一个浏览器,那么Activity就相当于一个网页;在Activity当中可以添加一些Button、Check box等控件;可以看到Activity概念和网页的概念相当类似; 一般一个Android应用是由多个Activity组成的;这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity ;和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从Activity A跳转到Activity B,那么当Activity B运行结束的时候,有可能会给Activity A 一个返回值;这样做在很多时候是相当方便的, 本发明基于Android平台系统的旅程航班动态通知系统及其方法当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中;用户可以通过回退操作返回到以前打开过的屏幕;可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中; Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互Service是没有界面的长生命周期的代码;Service是一种程序,它可以运行很长时间,但是它却没有用户界面;这么说有点枯燥,来看个例子;打开一个音乐播放器的程序,这个时候若想上网了,那么,打开航班,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放;其实这个播放就是由播放音乐的Service进行控制;当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等Service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等。
7.开启Service有两种方式: (1)Context.startService( ):Service会经历onCreate -> onStart(如果Service还没有运行,则android先调用onCreate ()然后调用onStart ();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次);StopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用StopService的话,Service会一直在后台运行;该Service的调用者再启动起来后可以通过stopService关闭Service ;注意,多次调用Context.startservice()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService ()或者StopSelfX ),他都会被停止;补充说明:传递给StartService(0的Intent对象会传递给 onStart ()方法;调用顺序为:onCreate —> onStart (可多次调用)一> onDestroy;
(2)Context.bindService ( ):Service 会经历 onCreate () —>onBind (),onBind 将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作;这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context 退出了,Srevice 就会调用 onUnbind —> onDestroyed 相应退出。
【文档编号】G06F9/44GK104423934SQ201310372462
【公开日】2015年3月18日 申请日期:2013年8月25日 优先权日:2013年8月25日
【发明者】朱迪 申请人:上海莞东拿信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1