程序关闭后,onExit回调未能触发

程序关闭后,onExit回调未能触发

测试过的手机:

华为mate20

操作步骤:

app.vue内,定义
onExit: function() {
console.log('App exit')
},

预期结果:

程序退出时,会有log输出

实际结果:

程序退出时,没有log输出

bug描述:

在app.vue内,定义了onExit()

onExit: function() {
console.log('App exit')
},

可是程序关闭了后,没有进入onExit。

3 回复

onExit是 安卓 uni-app-x 中使用的,uni-app 不兼容


最后怎么解决的呢

关于uni-app中onExit回调未触发的问题,这是Android平台的特性限制导致的。在Android系统中,应用退出时系统会直接终止进程,不会给应用执行回调的机会。这是Android的设计机制,并非uni-app的bug。

对于需要监听应用退出的场景,建议使用以下替代方案:

  1. 监听页面隐藏事件(onHide)
onHide: function() {
    console.log('App hide');
}
  1. 使用plus.runtime.quit监听退出事件(仅5+App可用)
plus.runtime.quit = function() {
    console.log('App quit');
    // 必须调用默认退出方法
    plus.runtime.quit();
};
回到顶部