Dynamic Menu Caching for Application Switching Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphical user interfaces (GUIs) face challenges in seamless information sharing and control switching between disparate applications, leading to limited presentation of information and inefficient user interaction.
Innovation Solution
A system and method that utilize a dynamic menu with selectable actions, presenting a plurality of windows in different states (glanced, focused, and expanded) based on user interactions, allowing for efficient switching between applications while maintaining continuous execution of underlying applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a traditional GUI switches between applications by pausing and switching windows, then application execution is controlled, but user interaction efficiency deteriorates due to multiple steps required to switch back and forth
Solution Approach 1:
The system performs preliminary actions by maintaining applications in a suspended but ready state, pre-loading necessary resources and keeping application contexts alive in memory. This allows applications to resume quickly without full re-initialization, effectively preparing the system in advance for potential user switching needs.
Solution Approach 2:
The patent introduces an intermediary mechanism (the task manager and suspension system) that mediates between application execution and user switching. This intermediary layer manages application states, handles context preservation, and coordinates resource allocation, enabling smooth transitions without direct user intervention in the switching process.
2Loss of information
If a GUI presents information only in active windows, then window management is simplified, but information sharing between applications deteriorates
Solution Approach 1:
The patent implements a universal information sharing mechanism that allows any suspended application to share its information state with other applications through a common context manager. This multi-functional system handles data persistence, inter-application communication, and state synchronization, enabling information to be accessed across application boundaries without requiring separate implementation for each pair.
Solution Approach 2:
The system uses copying mechanisms to preserve application contexts and data states in suspended memory structures. When applications are suspended, their critical information is copied and maintained in a accessible format that can be quickly restored or shared with other applications, ensuring information integrity without requiring complex real-time synchronization.
3Productivity
If a GUI requires pausing application execution to switch tasks, then resource allocation is simplified, but user productivity deteriorates
Solution Approach 1:
The patent applies partial action by suspending only the critical execution state rather than fully pausing all application processes. Essential background tasks continue running at reduced priority, while user interface states are preserved. This selective approach maintains enough application activity to enable quick resumption without consuming full resources, achieving a balance between productivity and resource usage.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A computer system including a content monitoring service of a menu application is provided. The content monitoring service pre-fetches data for a target application based on a data template defined for the target application, and stores the pre-fetched data in a cache of the menu application. The menu application presents a window in a first presentation state, where the window corresponds to the target application and includes content based on the pre-fetched data in the cache. The computer system further includes a window application that, upon a user selection of the window, receives a copy of the pre-fetched data from the cache and presents the window in a second state based on the data template.