CN106415499B - 应用实现的上下文切换 - Google Patents

应用实现的上下文切换 Download PDF

Info

Publication number
CN106415499B
CN106415499B CN201480046640.4A CN201480046640A CN106415499B CN 106415499 B CN106415499 B CN 106415499B CN 201480046640 A CN201480046640 A CN 201480046640A CN 106415499 B CN106415499 B CN 106415499B
Authority
CN
China
Prior art keywords
application
context
launch
reverse
user interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480046640.4A
Other languages
English (en)
Other versions
CN106415499A (zh
Inventor
M·曼迪克
B·乌普霍夫
J·格尔德纳
R·方
C·D·沙雷恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106415499A publication Critical patent/CN106415499A/zh
Application granted granted Critical
Publication of CN106415499B publication Critical patent/CN106415499B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Abstract

提供了用于实现反向协议启动的一种或多种技术和/或系统。例如,反向协议启动可以实现于应用之间(例如,作为应用对应用协议),使得用户可以利用反向协议启动以上下文相关方式在应用之间导航。在示例中,搜索应用可以基于搜索查询而显示假期搜索结果。响应于假期电影搜索结果的选择,会发生到电影应用的转换。指定了搜索应用的上下文状态(例如,关于假期搜索结果、搜索查询等的信息)的上下文可被发送给电影应用。该电影应用可以利用该上下文来实现反向协议启动以从电影应用转换回到处于上下文状态的搜索应用(例如,搜索应用可以使用假期搜索结果而被重新填充,等等)。

Description

应用实现的上下文切换
技术领域
概括地说,本公开内容涉及应用管理,更具体地说,涉及反向协议启动。
背景技术
很多计算环境可以托管(host)多个应用。例如,平板设备的操作系统可以托管地图应用、网络浏览器应用、音乐应用和/或其它应用。操作系统可以这样的方式管理这种应用:可以允许用户在应用之间切换。例如,用户可以通过处于前台状态的网络浏览器应用来查看网站,并且然后用户可以从网络浏览器应用(例如,使得操作系统将网络浏览器应用置于到后台状态)切换到音乐应用(例如,使得操作系统将音乐应用置于后台状态中)。这种切换由操作系统管理,并且因此对应用透明。例如,音乐应用可能缺乏关于如何开始和/或被切换到的信息(例如,音乐应用可能不知道网络浏览器应用和/或可能不知道用户从网络浏览器应用切换到音乐应用)。以这种方式,操作系统可以管理平板设备上的多个应用。
发明内容
提供该概述以介绍简化形式的概念的选择,所述简化形式的概念在下面的具体实施方式中进行详细描述。该概述不意在标识所要求保护的主题的关键因素或基本特征,也不意在限于所要求保护的主题的范围。
在此提供用于实现反向协议启动的一个或多个系统和/或技术,以及其它内容。例如,反向协议启动可以作为应用对应用协议而被实现在应用之间。例如,由第一应用启动的第二应用可以被提供有关于第一应用的上下文信息,使得第二应用可以从第二应用转换到处于上下文相关状态的第一应用(例如,在第二应用被启动之前第一应用的上下文状态)。以这种方式,使用由应用显露的反向协议启动功能(例如,第二应用可以利用第一上下文来重载(overload)诸如返回按钮的用户界面元件功能,所述第一上下文用于从第二应用转换到处于第一上下文状态的第一应用),用户可以在保存这些应用的上下文状态的同时在这些应用之间导航(例如,视频应用可以保留视频的当前重放位置;购物应用可以保留由用户提供的购买信息;诸如搜索超级按钮(search charm)的操作系统搜索界面可以保留滚动位置和搜索结果信息;等等)。
在示例中,第一应用可以提供第一用户界面,所述第一用户界面可以被用户体验。第一用户界面可以根据第一上下文状态而显示(例如,电子邮件应用可以显示包括与用户邮件搜索查询“显示我的假期电子邮件”相对应的一个或多个假期电子邮件的搜索结果的集合。响应于与第二应用相对应的用户输入(例如,用户可以点击附于假期电子邮件的假期电影链接),启动请求可以被从第一应用发送到第二应用。以这种方式,第二应用可以被启动到运行状态中(例如,电影应用可以被启动以播放与假期电影链接相对应的假期电影)。指定第一应用的第一上下文状态的第一上下文可以被发送到第二应用(例如,关于用户电子邮件搜索查询“显示我的电子邮件”的信息、搜索结果的集合、一个或多个假期电子邮件,所述假期电子邮件通过第一用户界面、滚动位置、电子邮件的用户选择等是可见的)。在示例中,第二应用可以显露反向协议启动功能(例如,通过使用第一上下文来重载返回按钮),所述反向协议启动功能可以被用户调用以从第二应用转换到处于第一上下文状态中的第一应用。例如,第一应用可以从第二应用接收反向协议启动命令。反向协议启动命令可以包括第一上下文。第一应用可以利用第一内容来重新填充第一用户界面。以这种方式,应用可以促成应用之间的上下文切换(例如,不需要依赖于操作系统功能和/或通过操作系统的用户输入)。
为了完成前述内容和相关目的,下面的描述和附加的图阐述了一些说明性的方面和实现。这些表示出可以采用一个或多个方面的各种方式中的仅仅几个。本公开的其它方面、优点和新颖的特征将在与附加的图结合地考虑时在下面的详细描述中变得显而易见。
附图说明
图1是示出用于由第一应用促成反向协议启动的示范性方法的流程图。
图2是示出用于由第二应用促成反向协议启动的示范性方法的流程图。
图3A是示出用于通过将第一上下文发送到第二应用来促成反向协议启动的说明示范性系统的组件框图。
图3B是示出用于通过实现反向协议启动来促成反向协议启动的说明示范性系统的组件框图。
图3C是示出用于通过重新填充第一应用来促成反向协议启动的说明示范性系统的组件框图。
图4A是示出用于通过将第二上下文发送到第三应用来促成反向协议启动的的说明示范性系统的组件框图。
图4B是示出用于通过保留第二上下文来促成反向协议启动的说明示范性系统的组件框图。
图4C是示出用于通过显露反向协议启动功能来促成反向协议启动的说明示范性系统的组件框图。
图4D是示出用于通过实现反向协议启动来促成反向协议启动的说明示范性系统的组件框图。
图4E是示出用于通过重新填充第一应用来促成反向协议启动的说明示范性系统的组件框图。
图5是促成反向协议启动的示例的示出。
图6是示范性计算机可读介质的示出,其中可以包括被配置为实施在此阐述的内容中的一个或多个的处理器可执行指令。
图7说明示范性计算环境,其中可以实施在此阐述的内容中的一个或多个。
具体实施方式
现在参照图描述所要求保护的主题,其中相似的附图标记一般通篇用于指代相似的元件。在下面的描述中,为了说明的目的,阐述了大量的具体细节以便提供对所要求保护的主题的理解。然而,明显的是,可以在没有这些具体细节的情况下实践所要求保护的主题。在其它实例中,结构和设备以框图的形式被示出以便于描述所要求保护的主题。
促成反向协议启动的实施例通过图1的示范性方法100来示出。在102处,所述方法开始。第一应用可以以可操作状态(例如,执行状态)而在计算环境中被托管。第一应用可以根据第一上下文状态提供第一用户界面。例如,购物应用可以显示与待出售的角色扮演游戏(RPG)视频游戏有关的信息。在104处,响应于由第一应用识别对启动第二应用的请求,启动请求可以被发送到第二应用以将第二应用启动到可操作状态中(例如,初始化第二应用;执行第二应用;将第二应用引入到前台状态中;等等)。例如,购物应用(例如,第一应用)可以显示到针对RPG视频游戏的视频评价的链接。基于所述链接的选择,视频评价可以由诸如视频应用的第二应用来播放。以这种方式,购物应用(例如,第一应用)可以启动视频应用(例如,第二应用)以播放视频评价。
在106处,第一应用可以发送第一上下文到第二应用。第一上下文可以指定在第二应用被启动之前的第一应用的第一上下文状态。例如,第一上下文可以表示出第一用户界面的滚动位置;指定第一应用用户界面内的用户界面元件的一个或多个用户界面值的字符串(例如,当前价格;RPG视频游戏的名称;从下拉菜单中选择的数量;键入到文本框中的视频游戏控制台名称;等);填充在第一应用用户界面中的用户指定的数据(例如,由用户输入到出价文本框中的当前出价价格);填充在第一应用用户界面中的一个或多个搜索结果(例如,第一上下文可以指示由用户提交的查询“RPG视频游戏”,用以显示与RPG视频游戏有关的信息);用户界面元件的状态(例如,复选框可以已被选择);与第一应用相关联的多媒体内容的重放状态(例如,正在被播放的RPG视频游戏的音频描述的当前播放时间);和/或可以由第一应用使用以根据第一上下文状态重新填充第一用户界面的多种其它信息。以这种方式,用户可以被转换到第二应用。在示例中,第二应用可以显露反向协议启动功能,该反向协议启动功能可以被用户调用以从第二应用转换到第一应用(例如,第二应用可以利用第一上下文和/或用于启动第一应用以根据第一上下文状态进行重新填充的反向协议启动功能来重载返回按钮的功能)。可以理解的是,在示例中,第二应用实现反向协议启动命令,这与依赖于操作系统来处理这种功能不同。以这种方式,反向协议启动可以被实现为在第一应用和第二应用之间实现的应用对应用协议。
在108处,响应于从第二应用接收包括第一上下文的反向协议启动命令,利用第一内容来重新填充第一用户界面。例如,购物应用可以利用与用于出售的RPG视频游戏相关的信息来重新填充第一用户界面,使得第一用户界面基本上与从购物应用转换到视频应用之前相同。以这种方式,第二应用可以以上下文感知的方式将用户从第二应用转换到第一应用,使得第一应用可以根据第一上下文状态来重新填充第一用户界面。
在示例中,第一应用可以转换到第二上下文状态。例如,响应于用户提交搜索查询“跑鞋”,跑鞋结果的集合可以被购物应用(例如,第一应用)显示。购物应用可以显示到运动鞋社交网络简档的链接。响应于识别出启动第三应用的第二请求,第二启动请求可以被发送到第三应用以将第三应用启动到可操作状态中。例如,用户可以调用到运动鞋社交网络简档的链接以打开社交网络应用。第一应用可以将第二上下文发送到第三应用。第二上下文可以指定在第三应用被启动之前的第一应用的第二上下文状态。例如,第二上下文可以表示出搜索查询“跑鞋”,跑鞋结果的集合,用户指定的数据(例如,鞋颜色),用户界面元件的用户界面值(例如,对下拉菜单中的尺寸的选择),和/或可以被第一应用使用以根据第二上下文状态来重新填充第一用户界面的多种其它信息。以这种方式,用户可以被转换到第三应用。在示例中,第三应用可以显露反向协议启动功能,该反向协议启动功能可以被用户调用以从第三应用转换到处于第二上下文状态中的第一应用。
响应于从第三应用接收包括第二上下文的第二反向协议启动命令,第一应用可以利用第二内容来重新填充第一用户界面。例如,购物应用可以利用跑鞋结果的集合来重新填充第一用户界面,使得第一用户界面基本上与用户从购物应用(例如,第一应用)被转换到社交网络应用(例如,第三应用)之前相同。以这种方式,第三应用可以以上下文感知的方式将用户从第三应用转换到第一应用,使得第一应用可以根据第二上下文状态来重新填充第一用户界面。在110处,该方法结束。
促成反向协议启动的实施例由图2的示范性方法20来示出。在202处,所述方法开始。第一应用可以以可操作状态在计算环境中被托管。第一应用可以根据第一上下文状态提供第一用户界面。例如,操作系统的操作系统搜索界面(例如,搜索超级按钮)可以基于搜索查询“我想计划假期”来显示假期搜索结果的集合。用户可以滚动穿过(scroll through)假期搜索结果的集合到达第二假期搜索结果页面,该第二假期搜索结果页面包括假期幻灯片演示搜索结果、假期社交网络简档、假期电子数据表、和/或其它搜索假期搜索结果。响应于选择假期幻灯片演示搜索结果,第一应用可以转换到第二应用,例如幻灯片演示应用。
在204处,响应于由第一应用识别出启动第二应用的启动请求,第二应用可以被启动到可操作状态中。例如,幻灯片演示应用可以被初始化、执行、和/或在前台状态下显示。在206处,第二应用可以从第一应用接收第一上下文。第一内容可以指定在第二应用被启动之前的第一应用的第一上下文状态。例如,第一上下文可以表示出第二假期搜索结果页面的滚动位置、搜索查询“我想计划假期”、被填充在第二假期搜索结果页面中的假期搜索结果等。第二应用可以显露反向协议启动功能,该反向协议启动功能可以被用户调用以从第二应用转换到处于第一上下文状态的第一应用。在示例中,幻灯片演示应用可以将第一上下文和/或反向协议启动功能与关联于第二应用的第二用户界面中的新的用户界面元件相关联。在另一示例中,幻灯片演示应用可以利用有第一上下文和/或反向协议启动功能来重载第二用户界面中的现有用户界面元件(例如,返回按钮),以创建重载的用户界面元件。反向协议启动功能可以被实现为第一应用和第二应用之间的应用对应用协议,与由操作系统实现不同(例如,幻灯片演示应用可以实现、控制和/或执行反向协议启动功能)。
在示例中,尽管从第二应用转换离开,但是反向协议启动功能仍然可以被保留和/或通过第二用户界面被显露。例如,用户可以从第二应用转换到第三应用(例如,用户可以打开音乐应用以便在后台中播放无线电台)。响应于识别从第三应用到第二应用的向回转换,与反向协议启动功能相关联的用户界面元件(例如,返回按钮)可以在第二用户界面中被显露。
在示例中,第二应用可以识别出启动第三应用的第二请求。例如,用户可以从由幻灯片演示应用(例如,第二应用)显示的假期幻灯片演示中选择与电子邮件应用相关的电子邮件地址链接。第二应用可以将第二启动请求发送到第三应用以将第三应用启动到第二可操作状态中。例如,电子邮件应用可以被启动以显示被寄往由电子邮件地址链接指定的电子邮件地址的新的电子邮件。第二应用可以将第二上下文发送到第三应用。第二上下文可以指定在第三应用被启动之前的第二应用的第二上下文状态。例如,第二上下文可以指定由幻灯片演示应用显示的当前演示幻灯片。第三应用可以实现反向协议启动功能以从第三应用转换到处于第二上下文状态的第二应用。响应于第二应用从第三应用接收包括第二上下文的反向协议启动命令,第二应用可以利用第二上下文来重新填充第二用户界面。例如,幻灯片演示应用可以利用当前演示幻灯片来重新填充幻灯片演示信息。在示例中,第二应用可以显示反向协议启动功能,该反向协议启动功能可以用于从第二应用转换到处于第一上下文状态中的第一应用(例如,幻灯片演示应用可保留第一上下文,尽管用户正在转换到电子邮件应用)。
在208处,第二应用可以利用第一上下文来实现反向协议启动以从第二应用转换到处于第一上下文状态中的第一应用。第二应用可以将第一上下文传递到第一应用,以用于根据第一上下文状态重新填充第一应用用户界面。例如,操作系统搜索界面可以显示第一应用用户界面中的第二假期搜索结果页面。在210处,该方法结束。
在示例中,活动应用API可以被显露给第二应用。活动应用API可以指示第一应用是否是活动的(例如,被显示在屏幕上、在前台状态中、对于用户可见等)或者是不活动的(例如,在操作系统使得多个应用能同时地被显示、演示等的情况下)。如果活动应用API指示第一应用是活动的,则第二应用可以抑制实现反向协议启动,这是因为第一应用可以已经对于用户可用和/或可见。
图3A示出用于实现反向协议启动的系统300的示例。系统300包括反向启动组件308。在示例中,第一应用302(例如,搜索应用)以运行状态在计算环境中被托管。第一应用302可以显示与搜索查询304“去看金字塔的假期”相对应的搜索结果的集合。例如,第一应用302可以显示对话、文件、日历信息、地图信息(例如,与诸如地图应用的第二应用312相关联的金字塔酒店地图地点搜索结果306)、和/或与搜索查询304相关的其它信息。反向启动组件308可以被配置为识别对启动第二应用312的请求。例如,用户可以选择与第二应用312相关联的金字塔酒店地图地点搜索结果306。反向启动组件308可以被配置为将启动请求312发送到第二应用312以将第二应用312启动到可操作状态中(例如,图3B)。反向启动组件308可以将第一上下文314发送到第二应用312。第一上下文314可以指定第一应用302的第一上下文状态。例如,第一上下文314可以表示出用户指定的数据(例如,搜索查询304“去看金字塔的假期”)、滚动位置(例如,0)、用户界面元件状态信息(例如,搜索结果的集合、标签的文本值、用户界面元件位置等)。在示例中,反向启动组建308的第一实例可以被集成到第一应用302中,使得第一应用302可以结合第二应用312来促成和/或实现反向协议启动。
图3B示出了用于实现反向协议启动的系统330的示例。可以理解的是,在一个示例中,系统330与图3A的系统300相对应。例如,系统330包括反向启动组件308(例如,与第一应用302相关联,从所述第一应用启动第二应用312和/或从所述第一应用向第二应用提供指定第一应用302的第一上下文状态的第一上下文314)。在示例中,反向启动组件308的第二实例可以被集成到第二应用312中,使得第二应用312可以结合第一应用302来促成和/或实现反向协议启动。第二应用312可以显示包括金字塔酒店地图地点的地图(例如,与图3A的金字塔酒店地图地点搜索结果306相对应)。
反向启动组件308(例如,被集成到第二应用312中的反向启动组件308的第二实例)可以显露反向协议启动功能,该反向协议启动功能可以用于从第二应用312转换到处于第一上下文状态中的第一应用302。例如,反向启动组件308可以利用第一上下文314和/或反向协议启动功能来重载返回按钮334。响应于选择返回按钮334,反向启动组件308可以实现反向协议启动332以从第二应用312转换到处于第一上下文状态中的第一应用302(例如,图3C)。反向启动组件308可以将第一上下文314发送到第一应用302,第一上下文可以由第一应用302使用以根据第一上下文状态来重新填充第一应用302的第一用户界面。
图3C示出用于实现反向协议启动的系统360的示例。系统360可以包括重新填充组件362。可以理解的是,在一个示例中,系统360与图3A的系统300和/或图3B的系统330相对应。例如,重新填充组件362可以与提供第一上下文314给第二应用312的第一应用302相关联,该述第一上下文指定第一应用302的第一上下文状态。第二应用312可以利用第一上下文314来实现反向协议启动332以从第二应用312转换到处于第一上下文状态中的第一应用302。第一应用302可以利用第一上下文314来重新填充第一应用302的第一用户界面,因此得到被重新填充的第一用户界面364。例如,第一应用302可以利用搜索结果的集合(例如,由第一上下文314指定的对话、文件、日历信息、地图信息和/或其它信息)来填充被重新填充的第一用户界面364。
在示例中,第一应用302可以存储反向协议启动实现数据,该反向协议启动实现数据指定:第二应用312实施反向协议启动332以启动第一应用302。第一应用302可以在确定是否要实现反向协议启动功能时利用反向协议启动实现数据。例如,第一应用302可以抑制实现关于第二应用312的反向协议启动功能,使得循环的导航场景不会发生,即用户在第一应用302和第二应用312之间被往复转换(例如,当使用第二应用312的返回按钮334和第一应用302的返回按钮时)。以这种方式,应用可以保持导航栈,在所述导航栈中应用可以存储有效的反向协议启动候选应用。例如,应用可以基于反向协议启动实现数据来抑制将候选应用添加到导航栈中,所述反向协议启动实现数据指示:应用当前基于由候选应用实现的反向协议启动被启动(例如,候选应用不会被视为有效的协议启动候选应用,因为候选应用启动了所述应用)。
图4A示出了用于实现反向协议启动的系统400的示例。可以理解的是,在一个示例中,系统400与图3A的系统300相对应。例如,系统400包括与第一应用302(例如,搜索应用)相关联的反向启动组件308。第一应用302可以显示与搜索查询404“跑车”相对应的搜索结果的集合。例如,第一应用302可以显示对话、文件、网站(例如,与诸如网站应用的第三应用412相关联的跑车网站链接搜索结果406)、地图信息和/或与搜索查询404相关的其它信息。用户可以从初始位置滚动到所滚动的位置(例如,用户可以开始从左向右滚动穿过搜索结果的集合以便看到初始显示的其它搜索结果)。
反向启动组件308可以被配置为识别对启动第三应用412的请求。例如,用户可以选择与第三应用412相关联的跑车网站链接搜索结果406。反向启动组件308可以被配置为将第二启动请求410发送到第三应用412以将第三应用412启动到可操作状态中(例如,图4B)。反向启动组件308可以将第二上下文414发送到第三应用412。第二上下文414可以指定第一应用302的第二上下文状态。例如,第二上下文414可以表示出用户指定的数据(例如,“跑车”的搜索查询)、滚动位置(例如,所滚动的位置,例如X方向上的20像素的位移)、用户界面元件状态信息(例如,与跑车相对应的搜索结果的集合、标签的文本值、用户界面元件位置等)。在示例中,第二上下文414可以与在图3A所说明的第一上下文314不同(例如,用户已经提交搜索查询304以查看与假期和金字塔相关联的搜索结果,然后用户可以已通过第二应用312来查看金字塔酒店,接着第二应用可以已执行反向协议启动返回到第一应用302,并且最终用户可以已提交搜索查询404以查看与跑车相关联的搜索结果)。在示例中,反向启动组件308的第一实例可以被集成到第一应用302中,使得第一应用302可以结合第三应用412来促成和/或实现反向协议启动。
图4B示出用于实现反向协议启动的系统430的示例。可以理解的是,在一个示例中,系统430与图4A的系统400相对应。例如,系统430包括反向启动组件308(例如,与第一应用302相关联,从所述第一应用启动第三应用412和/或从所述第一应用向第三应用提供指定第一应用302的第二上下文状态的第二上下文414)。在示例中,反向启动组件308的第三实例可以被集成到第三应用412中,使得第三应用412可以结合第一应用302来促成和/或实现反向协议启动。第三应用412可以显示跑车网站(例如,与图4A的跑车网站链接搜索结果406相对应)。
反向启动组件308(例如,被集成到第三应用412中的反向启动组件308的第三实例)可以显露反向协议启动功能,该反向协议启动功能可以用于从第三应用412转换到处于第二上下文状态中的第一应用302。例如,反向启动组件308可以利用第二上下文414和/或反向协议启动功能来重载返回按钮436。响应于选择返回按钮436,反向启动组件308可以实现反向协议启动452以从第三应用412转换到处于第二上下文状态中的第一应用302(例如,图4D和图4E)。
在示例中,从第三应用412到第四应用434的转换432可以被识别出。例如,用户可以打开音乐应用以播放无线电台。在用户例如在与第四应用434交互期间从第三应用412转换离开时,第三应用412可以保留指定第一应用302的第二上下文状态的第二上下文414和/或可以继续显露反向协议启动功能(例如,通过返回按钮436),使得用户可以从第三应用412转换到处于第一上下文状态中的第一应用302(例如,在稍后的时间点,例如在用户从第四应用434导航返回到第三应用412之后)。
图4C示出用于实现反向协议启动的系统440的示例。可以理解的是,在一个示例中,系统430与图4A的系统400和/或图4B的系统430相对应。例如,系统440包括反向启动组件308(例如,与第一应用302相关,从所述第一应用启动第三应用412和/或从所述第一应用向第三应用提供指定第一应用302的第二上下文状态的第二上下文414)。在示例中,用户可以已从第三应用412转换432到第四应用434以播放无线电台(例如,图4B)。响应于识别出从第四应用434向回转换442到第三应用412,与反向协议启动功能相关联的用户界面元件(例如,返回按钮436)可以在与第三应用412相关联的第三用户界面中被显露。以这种方式,用户可以调用返回按钮436来实现反向协议启动以从第三应用412转换到处于第二上下文状态中的第一应用302(例如,图4D和图4E)。
图4D示出用于实现反向协议启动的系统450的示例。可以理解的是,在一个示例中,系统450与图4A的系统400、图4B的系统430和/或图4C的系统440相对应。例如,系统450包括反向启动组件308(例如,与第一应用302相关联,从所述第一应用启动第三应用412和/或从所述第一应用向第三应用提供有指定第一应用302的第二上下文状态的第二上下文414)。在示例中,反向启动组件308的第三实例可以被集成到第三应用412中,使得第三应用402可以结合第一应用302来促成和/或实现反向协议启动。反向启动组件308(例如,被集成到第三应用412中的反向启动组件308的第三实例)可以显露反向协议启动功能,该反向协议启动功能可以用于从第三应用412转换到处于第二上下文状态中的第一应用302。例如,反向启动组件308可以利用第二上下文414和/或反向协议启动功能来重载返回按钮436。响应于选择返回按钮436,反向启动组件308可以实现反向协议启动452以从第三应用412转换到处于第二上下文状态中的第一应用302(例如,图4E)。反向启动组件308可以将第二上下文414发送到第一应用302,该第二上下文414可以由第一应用302使用以根据第二上下文状态来重新填充第一应用的第一用户界面。
图4E示出用于实现反向协议启动的系统470的示例。系统470可以包括重新填充组件362。可以理解的是,在一个示例中,系统470与图4A的系统400、图4B的系统430、图4C的系统440和/或图4D的系统450相对应。例如,重新填充组件362可以与将指定第一应用302的第二上下文状态的第二上下文414提供给第三应用412的第一应用302相关联。第三应用412可以利用第二上下文414来实现反向协议启动452以从第三应用412转换到第一应用302。第一应用302可以利用第二上下文414以根据第二上下文状态来重新填充第一应用302的第一用户界面,从而得到被重新填充的第一用户界面472。例如,第一应用302可以利用诸如由第二上下文414指定的对话、文件、网站、地图信息和/或其它信息的搜索结果的集合来填充被重新填充的第一用户界面472。
图5示出反向协议启动510的示例500。电子邮件应用502可以在计算环境中被托管。电子邮件应用502可以根据电子邮件搜索“显示我的关于视频游戏的电子邮件”来显示视频游戏电子邮件512作为电子邮件应用502的第一上下文状态。视频游戏电子邮件512可以包括与视频游戏新闻应用508相关联的视频游戏评论链接514。可以基于对视频游戏评论链接514的选择来检测游戏启动请求504。相应地,电子邮件应用502可以启动视频游戏新闻应用508。电子邮件应用502可以将指定电子邮件应用502的第一上下文状态的第一上下文506发送到视频游戏新闻应用508(例如,电子邮件应用502的滚动位置、电子邮件搜索“显示我的关于视频游戏的电子邮件”、视频游戏电子邮件512的标识符,等等)。
视频游戏新闻应用508可以显示与视频游戏评论链接514相对应的视频游戏评论。视频游戏新闻应用508可以利用第一上下文506和/或反向协议启动功能来重载滑动(swipe)手势(例如,手指从右向左滑动穿过视频游戏新闻应用508),以创建重载的滑动手势。响应于识别出重载的滑动手势,视频游戏新闻应用508可以实现反向协议启动510以从视频游戏新闻应用508转换到处于第一上下文状态中的电子邮件应用502。例如,视频游戏新闻应用508可以将第一上下文506发送到电子邮件应用502。电子邮件502可以利用第一上下文506以根据第一上下文状态来重新填充电子邮件应用502。
还有另一实施例涉及计算机可读介质,所述计算机可读介质包括被配置为实现在此呈现的一个或多个技术的处理器可执行指令。计算机可读介质或计算机可读设备的示例实施例在图6中示出,其中实现600包括计算机可读介质608,例如CD-R、DVD-R、闪存驱动器、硬盘驱动器的盘片等,所述计算机可读数据606被编码在所述计算机可读介质上。诸如包括0或1中的至少一个的二进制数据的该计算机可读数据606进而包括计算机指令604的集合,所述计算机指令604的集合被配置为根据在此阐述的原理中的一个或多个来运行。在一些实施例中,处理器可执行计算机指令604被配置为执行方法602,例如图1的示范性方法100中的至少一些和/或图2的示范性方法200中的至少一些。在一些实施例中,处理器可执行指令604被配置为实现系统,诸如例如图3A的示范性系统300中的至少一些、图3B的示范性系统330中的至少一些、图3C的示范性系统360中的至少一些、图4A的示范性系统400中的至少一些、图4B的示范性系统430中的至少一些、图4C的示范性系统440中的至少一些、图4D的示范性系统450中的至少一些、和/或图4E的示范性系统470中的至少一些。很多这种计算机可读介质由本领域技术人员设计,所述计算机可读介质被配置为根据在此呈现的技术来运行。
尽管以特定于结构特征和/或方法行为的语言描述了主题,但是应该理解的是,在所附权利要求中限定的主题不必局限于上面所描述的特定特征和行为。相反,上面所描述的特定特征和行为作为实现权利要求中的至少一些的示例形式被公开。
如在该申请中所使用的,术语“组件”、“模块”、“系统”、“界面”等等一般来说意在表示计算机相关的实体、硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但是不限于在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序、和/或计算机。通过说明的方式,在控制器上运行的应用和控制器都可以是组件。一个或多个组件可以驻留于进程和/或执行的线程中并且组件可以本地化于一台计算机上和/或分布在两台以上的计算机之间。
此外,所要求保护的主题可以被实现为方法、装置或使用标准编程和/或工程技术以生产软件、固件、硬件或者其任何组合的制品,以控制计算机实现所公开的主题。在此所使用的术语“制品”意在包含能从任何计算机可读设备、载体或介质访问的计算机程序。当然,可以对该配置做出很多修改而不背离所要求保护的主题的范围或精神。
图7和下面的讨论提供合适的计算环境的简短的、一般的描述以实现在此阐述的内容中的一个或多个的实施例。图7的运行环境仅仅是合适的运行环境的一个示例并且不意在暗示对运行环境的使用或功能的范围的任何限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持设备或膝上型计算机设备、移动设备(例如移动电话、个人数字助理(PDA)、多媒体播放器等)、多处理器系统、消费电子设备、微型计算机、大型计算机、包括任何上述系统或设备等分布式计算环境。
尽管非必要,但是在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述了实施例。计算机可读指令可以经由计算机可读介质(在下面论述)而分发。计算机可读指令可以被实现为执行特定任务或实现特定抽象数据类型的程序模块,例如函数、对象、应用程序接口(API)、数据结构等等。典型地,计算机可读指令的功能可以如在各种环境中所期望的那样被组合或者分布。
图7示出包括计算设备712的系统700的示例,计算设备712被配置为实现在此提供的一个或多个实施例。在一种配置中,计算设备712包括至少一个处理单元716和存储器717。取决于计算设备的准确配置和类型,存储器717可以是易失性的(例如,RAM)、非易失性的(例如,ROM、闪速存储器等)或者两者的某种组合。该配置在图7中由虚线714示出。
在其它实施例中,设备712可以包括附加的特征和/或功能。例如,设备712也可以包括附加的存储设备(例如,可移除的和/或不可移除的),包括但不限于磁存储设备、光存储设备等等。这种附加的存储设备在图7中由存储设备720示出。在一个实施例中,用于实现在此提供的一个或多个实施例的计算机可读指令可以在存储设备720中。存储设备720还可以存储其它计算机可读指令以实现操作系统、应用程序等等。例如,计算机可读指令可以被加载到存储器717中以用于由处理单元716来执行。
如在此所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括易失性的和非易失性的、可移除的和非可移除的介质,所述介质以任何方法和技术被实现以用于存储例如计算机可读指令和其它数据的信息。存储器717和存储设备720是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或者其它存储技术,CD-ROM、数字通用光盘(DVD)或其它光存储设备,磁盒、磁带、磁盘存储设备或其它磁存储设备,或者可以用于存储所期望的信息并且可以被设备712访问的任何其它介质。任何这样的计算机存储介质可以是设备712的一部分。
设备712也可以包括允许设备712与其它设备通信的通信连接726。通信连接726可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将计算设备712连接到其它计算设备的其它接口。通信连接726可以包括有线的连接或者无线的连接。通信连接726可以发送和/或接收通信介质。
术语“计算机可读介质”可以包括通信介质。通信介质典型地实施计算机可读指令或在诸如载波或其它传输机制中的“调制数据信号”中的其他数据并且包括任何信息递送介质。术语“调制数据信号”可以包括如下信号:该信号的一个或多个特征以将信息编码到信号中这种方式来设定或改变。
设备712可以包括输入设备724,例如键盘、鼠标、钢笔、声音输入设备、触摸输入设备、红外摄像机、视频输入设备和/或任何其它输入设备。输出设备722,例如一个或多个显示器、扬声器、打印机和/或任何其它输出设备也可以被包括在设备712中。输入设备724和输出设备722可以经由有线连接、无线连接或者它们的组合而连接到设备712。在一个实施例中,者来自另一计算设备的输入设备或输出设备可以被用作计算设备712的输入设备724或输出设备722。
计算设备712的组件可以通过诸如总线的各种互连来连接。这些互连可以包括外围组件互连(PCI)(例如PCI Express)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构,等等。在另一实施例中,计算设备712的组件可通过网络互连。例如,存储器717可以由位于通过网络互连的不同物理地点中的多个物理存储器单元构成。
本领域技术人员将认识到用于存储计算机可读指令的存储设备可以跨网络分布。例如,能经由网络727访问的计算设备730可以存储计算机可读指令以实现本文提供的一个或多个实施例。计算设备712可以访问计算设备730并且下载计算机可读指令的部分或全部以用于执行。可替代地,计算设备712可以根据需要而下载计算机可读指令,或者可以在计算设备712处执行一些指令,而在计算设备730处执行一些指令。
本文提供了实施例的多种操作。在一个实施例中,所描述的一个或多个操作可以构成存储在一个或多个计算机可读介质上的计算机可读指令,如果由计算设备执行,则这些计算机可读指令将使计算设备执行所描述的操作。描述一些或全部操作的顺序不应解释为暗指这些操作必然是取决于顺序的。获益于本说明书的本领域技术人员将意识到可替代的顺序。此外,将理解的是,不是所有操作都必然存在于本文提供的每个实施例中。而且,将理解的是不是所有操作都必然在一些实施例中。
此外,除非特别指出,否则“第一”、“第二”和/或类似表达不意在暗示时间方面、空间方面、排序等。相反,这些术语仅用作特征、元件、条目等的标识符、名称等。例如,第一对象和第二对象一般对应于对象A和对象B或者两个不同的或者两个相同的对象或同一对象。
而且,“示范性”在此用来表示充当示例、实例、示出等,不一定是优点。如本文所使用,“或者”意在表示包含性的“或者”,而不是排他性的“或者”。另外,在本申请中使用的“一”和“一个”一般应解释为表示“一个或多个”,除非指出或者从上下文看清楚涉及到单数形式。而且,A和B中的至少一个和/或类似表达一般是指A或B或A和B两者。此外,在在详细说明或权利要求中使用的“包含”、“具有”、“设有”、“带有”和/或它们的变型的范围内,这些术语意在包含性的,方式类似于术语“包括”。
而且,尽管已经参考一个或多个实现方式描述了且显示了本公开,但是在阅读和理解本说明书和所附的图之后,等同的变动和修改对于本领域技术人员将是显而易见的。本公开包含所有这样的修改和变动,并且仅由所附的权利要求的范围来限定。特别地,关于由上述组件(例如,元件、资源等)执行的各种功能,除非特别指出,否则用于描述这些组件的术语意在对应于执行所述组件的指定功能的任何组件(例如,功能上等同的),即使在结构上与所公开的结构不等同。另外,虽然本公开的特定特征已经关羽若干实现方式中的仅一个来公开,但是该特征可以对于任何给定或特定应用而言所期望的且有益的于其他实现方式的一个或多个特征相结合。

Claims (8)

1.一种用于实现反向协议启动的方法,包括:
由第二应用接收来自第一应用的第一上下文,所述第一上下文指定在所述第二应用被启动之前所述第一应用的第一上下文状态;
通过向所述第二应用的第二用户界面内的现有用户界面元件分配所述第一上下文和反向协议启动功能来创建所述第二用户界面内的重载的用户界面元件;
接收返回到所述第一应用的指示,其中,所述指示是对所述重载的用户界面元件的调用;以及
响应于接收到所述指示:
由所述第二应用实现反向协议启动,其中,所述反向协议启动包括由所述第二应用将从所述第一应用接收的所述第一上下文发送到所述第一应用;以及
由所述第一应用利用反向协议启动实现数据来确定是否要实现反向协议启动功能。
2.如权利要求1所述的方法,所述第一应用包括操作系统的操作系统搜索界面,并且所述第二应用包括由所述操作系统托管的应用。
3.如权利要求1所述的方法,包括:
将所述第一上下文和反向协议启动功能与关联于所述第二应用的第二用户界面内的新的用户界面元件相关联;以及
所述实现包括:响应于识别出所述新的用户界面元件的调用而实现所述反向协议启动。
4.如权利要求1所述的方法,其中,所述第一上下文至少包括搜索结果和滚动位置。
5.一种用于实现反向协议启动的系统,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在由所述至少一个处理器执行时,被配置为:
由第二应用从第一应用接收第一上下文,所述第一上下文指定在所述第二应用被启动之前所述第一应用的第一上下文状态,其中,所述第一上下文至少包括搜索结果和滚动位置;
识别从所述第二应用到第三应用的转换,所述第二应用在所述转换期间保留所述第一上下文;
识别到所述第二应用的向回转换;
由所述第二应用实现反向协议启动,其中,所述反向协议启动包括由所述第二应用将从所述第一应用接收的所述第一上下文发送到所述第一应用;以及
由所述第一应用利用反向协议启动实现数据来确定是否要实现反向协议启动功能。
6.如权利要求5所述的系统,包括:
重新填充组件,其被配置为:
响应于识别出对启动第三应用的第二请求,将第二启动请求发送到所述第三应用以将所述第三应用启动到第二可操作状态中;以及
由所述第二应用将第二上下文发送到所述第三应用,所述第二上下文指定在所述第三应用被启动之前所述第二应用的第二上下文状态。
7.如权利要求6所述的系统,所述重新填充组件被配置为:
响应于从所述第三应用接收到反向协议启动命令,利用所述第二上下文来重新填充与所述第二应用相关联的第二用户界面。
8.如权利要求5所述的系统,还包括:
反向启动组件,其被配置为:
在所述反向协议启动的实现之前:
识别从所述第二应用到第三应用的转换;以及
响应于识别出从所述第三应用到所述第二应用的向回转换,在与所述第二应用相关联的第二用户界面内显露与反向协议启动功能相关联的用户界面元件;以及
响应于识别出所述用户界面元件的调用,实现所述反向协议启动。
CN201480046640.4A 2013-08-23 2014-08-19 应用实现的上下文切换 Active CN106415499B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/975,046 2013-08-23
US13/975,046 US9766952B2 (en) 2013-08-23 2013-08-23 Reverse launch protocol
PCT/US2014/051573 WO2015026756A1 (en) 2013-08-23 2014-08-19 Application implemented context switching

Publications (2)

Publication Number Publication Date
CN106415499A CN106415499A (zh) 2017-02-15
CN106415499B true CN106415499B (zh) 2020-12-29

Family

ID=51492458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480046640.4A Active CN106415499B (zh) 2013-08-23 2014-08-19 应用实现的上下文切换

Country Status (5)

Country Link
US (1) US9766952B2 (zh)
EP (1) EP3036628A1 (zh)
CN (1) CN106415499B (zh)
TW (1) TW201508640A (zh)
WO (1) WO2015026756A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6452538B2 (ja) * 2015-03-20 2019-01-16 キヤノン株式会社 情報処理装置及びプログラム
US10620772B2 (en) 2015-07-29 2020-04-14 Microsoft Technology Licensing, Llc Universal back navigation for multiple windows
EP3125112A1 (en) 2015-07-30 2017-02-01 Hewlett-Packard Enterprise Development LP Web-application-launch application programming interfaces
US10078482B2 (en) * 2015-11-25 2018-09-18 Samsung Electronics Co., Ltd. Managing display of information on multiple devices based on context for a user task
CN114968453A (zh) * 2017-09-30 2022-08-30 华为技术有限公司 显示方法、移动终端及图形用户界面

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120914B1 (en) 2000-05-05 2006-10-10 Microsoft Corporation Method and system for navigating between program modules
US7512952B1 (en) * 2001-04-06 2009-03-31 Palmsource, Inc. Task switching with state preservation for programs running on an electronic device
US9740794B2 (en) 2005-12-23 2017-08-22 Yahoo Holdings, Inc. Methods and systems for enhancing internet experiences
CN101004776B (zh) * 2006-01-09 2010-06-16 太阳微系统有限公司 用于基于保护域的安全性的方法和装置
US7587392B2 (en) 2006-09-15 2009-09-08 Microsoft Corporation Efficient navigation of search results
US8458722B2 (en) * 2008-06-09 2013-06-04 International Business Machines Corporation Thread selection according to predefined power characteristics during context switching on compute nodes
US8745018B1 (en) * 2008-07-10 2014-06-03 Google Inc. Search application and web browser interaction
US9251268B2 (en) * 2010-12-01 2016-02-02 Microsoft Technology Licensing, Llc Automated target specific format conversion of context information from a user query

Also Published As

Publication number Publication date
TW201508640A (zh) 2015-03-01
EP3036628A1 (en) 2016-06-29
US9766952B2 (en) 2017-09-19
US20150058869A1 (en) 2015-02-26
WO2015026756A1 (en) 2015-02-26
CN106415499A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
US20220269529A1 (en) Task completion through inter-application communication
CN106133826B (zh) 用于语言模型自定义的灵活模式
US10509829B2 (en) Contextual search using natural language
US20150278370A1 (en) Task completion for natural language input
CN106415499B (zh) 应用实现的上下文切换
CN104350497B (zh) 通过开放的动作和/或提供者市场实现的用户任务完成
US20120166522A1 (en) Supporting intelligent user interface interactions
TW201502947A (zh) 使直接app動作浮現
US20160196043A1 (en) Method for selecting content and electronic device thereof
US11222090B2 (en) Site and service signals for driving automated custom system configuration
US11146860B2 (en) Service processing method, device, and intelligent terminal for obtaining and displaying data based on texture data corresponding to a target service
US20220398306A1 (en) Service-driven widgets with multiple forms of authentication displayed in a widgets board
CN106062747B (zh) 信息接口生成
US10341852B2 (en) Informational articles in response to detection of devices or software
US11269961B2 (en) Systems and methods for App query driven results
KR102246611B1 (ko) 인앱 소프트웨어 구매에 대한 마켓에 의한 가격 차별화 기법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant