Titanium Back Button - 永远关闭我的应用程序

时间:2015-01-20 04:47:55

标签: javascript android titanium appcelerator

我的应用程序出现了新问题,我正在使用Appcelerator Titanium进行开发。 我想从我的设备锁定Backbutton,所以当我使用他时,App不会关闭。我想关闭应用程序只有我在主要菜单。所以这是我的代码:

Ti.UI.currentWindow.addEventListener('android:back',function(){
alert(Ti.App.PositionNow);
if(Ti.App.PositionNow=='0') {
    alert('do quit');
} else if(Ti.App.PositionNow=='1') {
    Ti.App.multi_tableView.addEventListener('click',myfunction);
    var duration = 300;
    var setOldOpacity = Titanium.UI.createAnimation();
    setOldOpacity.opacity = 1;
    setOldOpacity.zIndex = 1;
    setOldOpacity.duration = duration;

    var setOldBottom = Titanium.UI.createAnimation();
    setOldBottom.bottom = 0;
    setOldBottom.duration = duration;

    var setOldTop = Titanium.UI.createAnimation();
    setOldTop.top = 0;
    setOldTop.duration = duration;

    var animationHandler2 = function() {
           setOldTop.removeEventListener('complete',animationHandler2);
           Ti.App.multi_view_first.animate(setOldTop);
           Ti.App.multi_view_second.animate(setOldBottom);
           Ti.App.multi_tableView.animate(setOldOpacity);
        };
    setOldTop.addEventListener('complete',animationHandler2);
    Ti.App.multi_view_first.animate(setOldTop);
    Ti.App.multi_view_second.animate(setOldBottom);
    Ti.App.multi_tableView.animate(setOldOpacity);
    alert('hallo1');
    Ti.App.PositionNow = 0;
}
return false;
});

我有一个变量,我在菜单的层次结构中跟踪用户的位置。因此应用程序只应在位置为“0”时关闭。

如果位置为“1”,则应该有一个动画,所以这样可行,但在动画期间,应用程序会立即关闭。

窗口的代码是:

Ti.App.hs_win = Ti.UI.createWindow({
   url: '/sites/homescreen/index.js',
   navBarHidden: true,
   fullscreen: true,
   modal:true,
   theme: "Theme.Titanium",
   orientationModes: [Ti.UI.PORTRAIT]
});

1 个答案:

答案 0 :(得分:4)

您已暂停监控android:back的事件。请使用androidback活动。

第二步是在事件处理程序链中进一步停止事件冒泡。为此,您需要取消活动:

Ti.UI.currentWindow.addEventListener('androidback',function(event){
      event.cancelBubble = true;
}

此外,您还必须修改窗口并将exitOnClose属性设置为false