在当前显示的窗口中按下按钮时,我打开一个新窗口。当用户单击后退或android中的后退按钮时,我关闭当前窗口,它工作正常。但是当用户按下应用程序的主页按钮转到第一个窗口时,所有其他添加的窗口将保留在后台,而在android中,如果用户按下手机的后退按钮,应用程序将转到上一个打开的窗口而不是它应该去的地方。
这是我打开一个新窗口的方式:
view.addEventListener('click', function(e) {
var win = Ti.UI.createWindow({
url : 'List.js'
});
win.open();
});
要关闭我使用的窗口:
Ti.UI.currentWindow.close();
例如我打开了窗口A,B,C,D,然后在D窗口中按下应用程序的主页按钮,我必须转到B窗口。所以我需要关闭C和D窗口,但我现在不知道如何关闭背景中的C窗口。
我没有使用Alloy
答案 0 :(得分:2)
我认为实现这一目标的一种方法是跟踪打开的窗口。
例如,在alloy.js中,您可以:
Alloy.Globals.openWindows = []
(如果你没有使用Alloy,只需使用其他一些全局变量)
现在您的事件处理程序将如下所示:
view.addEventListener('click', function(e) {
var win = Ti.UI.createWindow({
url : 'List.js'
});
Alloy.Globals.openWindows.append(win);
win.open();
});
现在,如果你需要关闭窗口和父窗口,你可以这样做:
Alloy.Globals.openWindows.pop().close()
您可以根据需要多次重复上述行以关闭所需数量的窗口。例如,如果您需要关闭3个父窗口,则可以执行以下操作:
for (var i = 0: i < 3; i++) {
Alloy.Globals.openWindows.pop().close()
}
如果你需要关闭所有窗口,除了第一个窗口你可以这样做(假设第一个窗口没有添加到openWindows
):
while(Alloy.Globals.openWindows.length > 0) {
Alloy.Globals.openWindows.pop().close()
}