为什么APP退出后退按钮Titanium

时间:2012-12-16 16:05:35

标签: javascript android button titanium back

app.js

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

new Window().open();

SignIn.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 个答案:

答案 0 :(得分:7)

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

window.addEventListener('android:back', function(){
    // close your current window
});

答案 1 :(得分:1)

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

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

  

exitOnClose:Boolean   CREATION-ONLY

     

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

     

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

StatusMain.js

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

这应该可以解决问题。虽然默认值为false,但似乎您的问题与此有关。我建议尝试将此属性设置为true / false。

建议之词,如果您还没有这样做,还应该在设备上测试您的应用。我在Android模拟器上的经验在某些方面相当不一致。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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