appcelerator 如何关闭索引的 window 与另一个 window

appcelerator how close the window of index from another window

大家

我在 alloy 中使用钛,我有两个 windows,分别是 index.js 和 main.js。

index.js的window会在app运行的时候打开,index里面有一个按钮,有人点击这个按钮就会打开main。 Main 有另一个用于关闭索引的按钮。

如您所见,我正在尝试关闭主 window 中的索引 window。

在IOS中一切正常,但是当我在Android中测试时,我发现了一个奇怪的问题:当我点击main.js中的按钮关闭索引[=39] =],所有 windows(index 和 main)都关闭了。

我尝试了很多方法,比如使用 Ti.APP.trigger/Ti.APP.addEventListener 并将 $.index 或回调函数发送到 main.js。

谁能帮帮我,谢谢。

在index.js中使用这个

$.index.exitOnClose = false

您的解决方案是设置此 属性:exitOnClose = false 正如@genocsb 所回答的。仅在 Android.

上可用

实际上,这个 属性 告诉 window 应该在关闭 window 本身时关闭应用程序。因此,默认情况下,第一个 window 具有其 属性 exitOnClose = true.

在你的情况下,做这样的事情:

- index.js

Alloy.Globals.Index = $.index;
Alloy.Globals.Index.open();

// If you will do this and press back button on index screen, then you will land to splash screen.
// Alloy.Globals.Index.exitOnClose = false;

- main.js

$.button.addEventListener('click', function (){
    $.main.exitOnClose = true;                  // setting it to true will cause your app to close from main.xml screen on back button press
    Alloy.Globals.Index.exitOnClose = false;    // setting it to false here will ensure that you will not land to splash screen if back button is pressed.
    Alloy.Globals.Index.close();
    Alloy.Globals.Index = null;
});