我可以阻止移动应用关闭

时间:2017-01-31 00:58:16

标签: android appcelerator titanium-mobile titanium-alloy

当移动应用关闭时,它会生成一个可以捕获的事件。

// trap app shutdown event
Titanium.App.addEventListener(‘close’,function(e)
{
Ti.API.info(“The application is being shutdown”);
});

我想创建一个事件处理程序,弹出一个警告,询问“你确定要退出应用程序”,以防万一有人按错键......

这可能吗,你可以取消关机事件吗?

3 个答案:

答案 0 :(得分:1)

您只能在Android中执行此操作。这在iOS上无法实现。

此外,在Android上,只有在按下后退按钮而不是从任务管理器关闭应用程序时才能执行此操作。

以下是您在Android上的操作方式:

<Alloy>
    <Window id='win'>

    </Window>
</Alloy>


// for Ti SDK 6.0.0.GA or above, you need to use this code
$.win.onBack = close;

// else use this code for SDK 5.5.1 or below
$.win.addEventListener('androidback', close);

function close() {
    alert('Do you want to shut down app????');
}

了解 androidback event here

并且增加了上述突破性变化的门票: https://jira.appcelerator.org/browse/TIMOB-19919

答案 1 :(得分:0)

简短回答是:不,你不能

您可以跟踪与应用程序生命周期相关的事件,但无法阻止这种情况发生。如果没有遇到糟糕的用户体验,可以让我们谈谈用户场景的样子。

如果您正在使用Android手机并且想要关闭某个应用,并且只是一直询问您是否确定要将其关闭,程序员会忽略Yes操作并保持应用运行。这会有多么不安全和烦恼?

答案 2 :(得分:0)

我设法通过首先挂钩到Android后退事件来解决这个问题,其次是使用bencoding Alarm Manager来不断运行后台代码。这样,如果有人关闭了用户界面,应用程序将继续在后台运行,无论如何。