BREW后台应用

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6520454 在BREW 3.x 版本以前,后台应用根本不响应suspend和resume事件,也处理有终端用户相关的交互操作,例如按键事件等等。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6520454

在BREW 3.x 版本以前,后台应用根本不响应suspend和resume事件,也处理有终端用户相关的交互操作,例如按键事件等等。

在BREW 3.x 以后,任何应用都可以对按键事件进行处理,可以简单地通过注册掩码为NMASK_SHELL_KEY的通知来实现。通过ISHELL_StartBackgroundApplet()直接启动一个后台应用,后台应用可以直接处理EVT_APP_START_BACKGROUND 事件而不是EVT_APP_START事件。在BREW 2.x中使一个应用处于后台运行状态的方法是,在调用ISHELL_CloseApplet() 且接收到EVT_APP_STOP时, 将 *(dwParam) 设置为FALSE,例如(*(oolean *)dwParam) = FALSE。

一个BREW应用与后台应用,或者后台应用与另一个后台应用之间一般采用事件传递的方式进行通信。终止一个后台应用的后台运行状态有三种情况,第一种是接收到其他应用的发来的事件,一种是后台应用执行完相关操作后调用ISHELL_CloseApplet()来关闭自己,另一种是后台应用调用ISHELL_StartApplet()使自己处于前台运行状态,然后通过用户的交互来关闭自己。

下面是BREW2.X中使用后台应用的示例:

typedef struct _bgApp

{

AEEApplet a;

oolean m_bGoBg; // used to toggle whether to run in background mode

} bgApp;

……

switch (eCode)

{

case EVT_APP_START:

if(pMe->m_bGoBg)

ISHELL_CloseApplet(pMe->a.m_pIShell, FALSE); // send applet to background

return TRUE;

case EVT_APP_STOP:

if(pMe->m_bGoBg)

*((oolean*) dwParam) = FALSE; // set dwParam to run in bg

return TRUE;

case EVT_USER:

if(pMe->m_bGoBg)

{

pMe->m_bGoBg = FALSE;

ISHELL_StartApplet(pMe->a.m_pIShell, AEECLSID_BGAPP); // make applet active

}else{

pMe->m_bGoBg = TRUE;

// trigger EVT_APP_STOP to send app to  background

ISHELL_CloseApplet(pMe->a.m_pIShell, FALSE);

}

return TRUE;

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wireless_com/archive/2010/09/29/5914168.aspx

目录
相关文章
Magisk模块:自动墓碑后台v1.7.1(测试版)
Magisk模块:自动墓碑后台v1.7.1(测试版)
2267 0
|
4月前
|
JavaScript Ubuntu Linux
蓝易云 - linux中安装nodejs,卸载nodejs,更新nodejs,git
请根据自己的Linux发行版和版本选择合适的命令。
206 2
|
5月前
|
前端开发 网络协议 iOS开发
【macOS 系列】下载brew或其他依赖包提示连接超时的问题解决
【macOS 系列】下载brew或其他依赖包提示连接超时的问题解决
91 0
|
Android开发
关于安卓应用后台重新安装后,重新进入,应用重新打开问题
安卓应用后台重新安装后,重新进入,应用重新打开问题
392 0
|
JavaScript
Ubuntu20安装nodejs和npm并切换阿里源
Ubuntu20安装nodejs和npm并切换阿里源
900 1
Ubuntu20安装nodejs和npm并切换阿里源
|
JavaScript 前端开发 API
在浏览器控制台安装 NPM 包是什么体验?
通常,我们通过npm install xxx在 React、Vue、Angular 等现代前端项目中安装依赖,但是前端项目在本质上还是运行在浏览器端的 HTML、JavaScript 和 CSS,那么,我们有办法在浏览器控制台直接安装 npm 包并使用吗?
616 0
在浏览器控制台安装 NPM 包是什么体验?
|
弹性计算 Apache 数据库
通过命令行安装magento2
通过命令行安装magento2,可避免web安装超时。
8533 0
|
NoSQL Redis
Homebrew 插件自启动
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82892939 ...
1242 0
|
关系型数据库 MySQL 缓存
brew简单命令的使用
mac 终端程序管理工具 能让你更快速的安装你想要的工具。而不用考虑大量的依赖。 安装命令 给官网的一样也可以自己去官网查看Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.
1631 0
|
关系型数据库 MySQL 缓存
brew 基本使用方法
mac 终端程序管理工具 能让你更快速的安装你想要的工具。而不用考虑大量的依赖。 安装命令 给官网的一样也可以自己去官网查看Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.
1478 0