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屏幕
任何帮助都会非常值得赞赏!
提前致谢,
穆赫辛
答案 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({...})选项。在窗口创建后设置>没有效果。
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;
}