《基于ANDROID系统的由通知栏调用后台任务的方法.pdf》由会员分享,可在线阅读,更多相关《基于ANDROID系统的由通知栏调用后台任务的方法.pdf(6页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410433052.8(22)申请日 2014.08.28G06F 9/48(2006.01)G06F 11/30(2006.01)(71)申请人中科创达软件股份有限公司地址 100191 北京市海淀区龙翔路甲1号泰翔商务楼4层(72)发明人田兆申 赵鸿飞(74)专利代理机构北京华夏正合知识产权代理事务所(普通合伙) 11017代理人韩登营 张焕亮(54) 发明名称基于Android系统的由通知栏调用后台任务的方法(57) 摘要本发明所提供的一种基于Android系统的由通知栏调用后台任务的方法,包括步骤:A、当通知栏中的后台任务通。
2、知被用户触选时,创建一由通知栏启动的应用程序组件;B、通过所创建的所述应用程序组件启动被用户所触选的所述后台任务,使所述后台任务切换至前台显示;C、关闭所创建的所述应用程序组件。由上,实现软件所在任务从后台至前台的跳转,且不间断运行,从而避免由通知栏启动监控软件时,监控软件的主界面程序组件重新被创建的问题。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书3页 附图1页(10)申请公布号 CN 104375888 A(43)申请公布日 2015.02.25CN 104375888 A1/1页21.一种基于Android系统的由通知栏调用后台任务。
3、的方法,其特征在于,包括步骤:A、当通知栏中的后台任务通知被用户触选时,创建一由通知栏启动的应用程序组件;B、通过所创建的所述应用程序组件启动被用户所触选的所述后台任务,使所述后台任务切换至前台显示;C、关闭所创建的所述应用程序组件。2.根据权利要求1所述的方法,其特征在于,创建的所述应用程序组件的启动模式定义为singleInstance模式。3.根据权利要求1或2所述的方法,其特征在于,创建的所述应用程序组件的主题设置为透明。4.根据权利要求1所述的方法,其特征在于,步骤B中,通过所创建的所述应用程序组件启动被用户所触选的所述后台任务采用onCreate()函数。5.根据权利要求3所述的方。
4、法,其特征在于,所述后台任务为一监控软件应用任务。权 利 要 求 书CN 104375888 A1/3页3基于 Android 系统的由通知栏调用后台任务的方法 技术领域0001 本发明涉及智能终端任务管理技术领域,特别涉及一种基于Android系统的由通知栏调用后台任务的方法。背景技术0002 目前很多电子终端上都安装有多任务系统,也就是说可以同时运行多个应用程序,例如Android系统。一般来说,启动运行一个应用是有一定的时间开销的,因此为了加快运行速度,当通过例如Android系统的home键切换应用时,之前前台的应用并没有真正退出,而是切换到了后台,即该应用对应的任务(Task)及其活。
5、动组件(Activity)处于后台停止状态(Stopped),当该应用下次再切换回前台时,其Activity组件转为Active/Running状态,从而对应的应用可以很快的使用。0003 在设计实现Android系统的手机的监控类应用时,这些监控类应用的主界面经常需要实时显示监控目标的变化、趋势、统计等动态数据。在应用首次启动时,要进行模块的初始化、服务注册启动和/或数据结构实例化等重要操作。当监控类应用启动后,如果出现前后台切换的情况(例如将另一应用切换至前台而使得监控软件切换至后台),应使监控类应用从后台切换回前台时,须保证监控目标数据的不间断显示、同时应避免重新进行模块初始化或服务注册。
6、等操作,以避免之前监控的动态数据丢失。0004 目前,当某监控类应用处于后台(其Activity处于stopped状态)时,如果是从桌面应用程序列表(Launcher)中启动该应用(例如Launcher该应用的图标被用户点击),Android系统会将该应用的Task对应的Activity转为Active/Running状态,即将该应用切换到前台。0005 但是当该监控类应用处于后台(其Activity处于stopped状态)时,如果从通知栏(Notication)启动(例如下拉通知栏中该应用的通知被用户点击),就会出现监控目标数据间断和重复初始化模块、重新注册服务的问题。0006 该问题的根源。
7、是由应用通知创建时决定的,根据Android应用发送通知的要求,通知对应的Intent须设置FLAG_ACTIVITY_NEW_TASK标记(flag)。上述flag如果设置,则通知中的活动组件Activity会被重新创建,而不会显示之前切换到后台的Activity实例,即,当用户用手点击通知栏时,此时匹配到后台任务,并把此任务切换到前台,然后在任务中重新创建应用程序组件,导致之前监控的动态数据丢失,同时重新进行了模块初始化或服务注册等操作。发明内容0007 有鉴于此,本发明的主要目的在于,提供一种基于Android系统的由通知栏调用后台任务的方法,可实现软件所在任务从后台至前台的跳转,且不间。
8、断运行,从而避免由通知栏启动监控软件时,监控软件的主界面程序组件重新被创建的问题。0008 所述Android系统的由通知栏调用后台任务的方法包括步骤:说 明 书CN 104375888 A2/3页40009 A、当通知栏中的后台任务被用户触选时,创建一由通知栏启动的应用程序组件;0010 B、通过所创建的所述应用程序组件启动被用户所触选的所述后台任务,使所述后台任务切换至前台显示;0011 C、关闭所创建的所述应用程序组件。0012 由上,实现软件所在任务从后台至前台的跳转,且不间断运行,从而避免由通知栏启动监控软件时,监控软件的主界面程序组件重新被创建的问题。0013 可选的,所述创建的所。
9、述应用程序组件的启动模式定义为singleInstance模式。0014 可选的,步骤B中,通过所创建的所述应用程序组件启动被用户所触选的所述后台任务采用onCreate()函数。0015 可选的,所述创建的所述应用程序组件的主题设置为透明。0016 由上,由于所创建的应用程序组件在视觉上无意义,为用户有更好的视觉体验,将其主题设置为透明。0017 所述后台任务为一监控软件应用任务。附图说明0018 图1为基于Android系统的由通知栏调用后台任务的方法的流程图;0019 图2为任务切换示意图。具体实施方式0020 下面对本发明所提供的基于Android系统的由通知栏调用后台任务的方法进行描。
10、述,以所述后台任务为监控软件为例进行说明。针对通知栏启动监控软件,可实现软件所在任务从后台至前台的跳转,且不间断运行,从而避免由通知栏启动监控软件时,监控软件的主界面程序组件重新被创建的问题。0021 如图1所示为基于Android系统的通知栏启动监控软件方法的流程图,其中,本发明的前提是所述监控软件被切换至后台运行,本实施例中,智能终端可以为手机或平板电脑等,具体的,包括以下步骤:0022 步骤S10:通知栏被触发,并且通知栏中的所述监控软件通知被用户触选时,执行下一步。0023 步骤S20:创建一由通知栏启动的应用程序组件(Activity)。包括:0024 定义所创建的Activity的。
11、启动模式,本实施例中,将所创建的Activity添加至一新的Task当中,将Activity的启动模式定义为“singleInstance”,所建立的Activity作为新Task的唯一堆栈元素。0025 进一步的,将所建立Activity的主题设置为透明,即声明theme 为Translucent。0026 具体的,在配置文件AndroidManifest.xml中声明所述的Activity的代码如下:0027 launchMode:singleInstance/声明创建Activity的启动模式;0028 theme:Translucent/声明所创建Activity的主题为透明;0029。
12、 步骤S30:通过所创建的所述Activity启动后台运行的所述监控软件。0030 在所创建的Activity的函数中,调用onCreate()函数启动后台运行的所述监控软件,以使所述监控软件的运行界面在前台显示。说 明 书CN 104375888 A3/3页50031 步骤S40:结束所创建的所述Activity。0032 所述步骤S30和步骤S40采用如下代码实现:0033 Override0034 protected void onCreate(Bundle savedInstanceState)/在Activity创建时被系统调用;0035 0036 /TODO Auto-genera。
13、ted method stub0037 super.onCreate(savedInstanceState);/完成onCreate的初始化创建等工作;0038 startActivity(new Intent(this,MonitorMainAct.class);/启动监控软件,使后台监控软件的主界面Activity状态由stopped状态转为Active/Running状态,将要在前台显示的监控软件的Activity为:由上述创建的Activity跳转至由通知栏所选择的监控软件;0039 nish();/此为步骤S40所对应的代码,结束Activity自身,由于启动模式为singleIns。
14、tance,因此Activity所在的Task也被销毁,此时步骤S20所创建的Activity由Active/Running状态转为Killed状态。0040 0041 当监控软件被启动后,其执行onResume()函数,后台存在的监控软件界面对应的Activity转为Active/Running状态,自动切换到前台。0042 需要补充说明的是,将所建立的Activity的启动模式定义为 “singleInstance”模式或将应用主界面的Activity启动模式定义为“singleTask”模式,即声明launchMode为singleInstance,或声明launchMode为singl。
15、eTask,都可以实现软件的不间断运行,从而避免监控软件的主界面程序组件重新被创建的问题。0043 但所述“singleTask”模式与“singleInstance”模式的区别在于,“singleInstance”模式中,所建立的新任务仅包含该Activity组件;而“singleTask”模式中,监控应用主界面的Activity在任务中并非总处于最上层,在其上层若还存在其他Activity,则Task切换到前台后会销毁其上部的所有Activity,使自身处于Task的顶部,“singleInstance”模式时,用户从通知栏点击启动应用软件时,智能终端所反映的行为和由桌面应用程序列表启动完。
16、全一致;“singleTask”模式时,声明为singleTask的应用主界面上部的Activity堆栈信息被销毁,与从桌面应用程序列表启动后台应用的行为不一致,用户体验不够好。0044 因此,优选的,将所创建的Activity的启动模式定义为“singleInstance”模式。0045 通过上述步骤,使得通过由通知栏启动运行于后台的应用程序时,无需如首次启动应用程序时重复的初始化以及注册服务等操作,使其与后台的应用程序进行关联。0046 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明。总之,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 104375888 A1/1页6图1图2说 明 书 附 图CN 104375888 A。