2014-09-27 43 views
0

,我已經實現了一個屏幕,我有一個按鈕,它調用服務調用,一旦收到響應它導航到下一個屏幕。我在第一個屏幕上添加了一個活動指示符,直到收到響應。Titanium:BACK按鈕在ANDROID中按下時如何中止服務調用?

雖然這種活性指示器工作,如果用戶按下BACK按鈕ANDROID,在應用程序退出,並顯示該消息「應用程序已意外停止」。

有什麼辦法中止服務呼叫如果用戶在ANDROID按下BACK 按鈕和土地他在同一屏幕上或沒有任何錯誤,退出應用程序?

回答

0

我會檢查你正在做的服務調用是否有任何鉤子在事件處理前綁定了eventListeners。這是值得懷疑的,但值得一看。

我會假設一旦服務調用發送它然後異步更新,你將不會有機會。

但是,如果你正在調用一個API響應,例如你可以設置一個超時值和在這種情況下觸發的錯誤捕獲。

例如

var url = "serviceURL"; 
var xhr = Ti.Network.createHTTPClient({ 
    onload: function(e) { 
     // this.responseText holds the raw text return of the message (used for JSON) 
     // this.responseXML holds any returned XML (used for SOAP web services) 
     // this.responseData holds any returned binary data 

     Ti.API.debug(this.responseText); 
     alert('success'); 
    }, 
    onerror: function(e) { 
     Ti.API.debug(e.error); 
     alert('error'); 
    }, 
    timeout:5000 
}); 

在錯誤功能中,您可以關閉加載輪對象。

例如。

loadingWheel.close(); 

然後使用原始窗口上下文將用戶指向不同的窗口。

實現此目的的另一個選項是等待來自該服務的響應並寫入一個基本的超時函數,該函數在服務返回結果之前中止。您可以錯誤地捕捉到這一點,並在合理的時間內返回之前不加載新窗口,同時仍然向用戶提供裝載輪。

相關問題