0

应用程序.js

if (osname === 'android') {
    Window = require('ui/handheld/android/SignIn');
}
else {
    Window = require('ui/handheld/SignIn');
}

new Window().open();

登录.js

function SignIn() {
    var self = Ti.UI.createWindow();
    //Some design and sign-in validation code
    ...
    var StatusMain = require('/ui/handheld/android/StatusMain');
    new StatusMain(global_vars).open();
    return self;
}

StatusMain.js

function StatusMain(global_vars) {
    var self = Ti.UI.createWindow();
        return self;
}

StatusMain.js上,屏幕当我单击设备的后退按钮时,APP 退出而不是返回 SignIn.js 屏幕

任何帮助都将不胜感激!

提前致谢,

莫辛

4

4 回答 4

7

您可以在代码中处理这样的后退按钮事件

window.addEventListener('android:back', function(){
    // close your current window
});
于 2012-12-16T16:24:30.427 回答
2

我建议您在创建新窗口时将(Android 特定的)exitOnClose 属性设置为 false:

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-exitOnClose

exitOnClose : Boolean CREATION-ONLY

布尔值,指示在显示窗口时按下 Android 后退按钮 > > 时应用程序是否应退出。

您只能将其设置为 createWindow({...}) 选项。在创建窗口后设置 > 无效。

StatusMain.js

function StatusMain(global_vars) {
    var self = Ti.UI.createWindow({
        exitOnClose: false
    });
        return self;
}

这应该够了吧。虽然默认值为 false,但您的问题似乎与此有关。我建议尝试将此属性设置为真/假。

忠告,如果您还没有这样做,您还应该在设备上测试您的应用程序。在某些方面,我对 Android 模拟器的体验相当不一致。

于 2012-12-16T16:29:11.177 回答
1

StatusMain 是一个轻量级窗口。它不会创建新的 Android 活动,而是与登录窗口活动共享。这就是为什么您的应用程序在按下后退按钮时关闭的原因。您需要创建一个重量级窗口(指定全屏或 navBarHidden 属性)StatusMain 窗口。

于 2013-04-19T01:24:01.187 回答
0

将新窗口的 modal 属性设置为 true。

function StatusMain(global_vars) {
        var self = Ti.UI.createWindow({
        modal: true
    });
    return self;
}
于 2012-12-25T00:05:36.693 回答