2017-01-31 114 views
1

當移動應用程序關閉時,它會生成一個可以捕獲的事件。我可以阻止移動應用程序關閉嗎

// trap app shutdown event 
Titanium.App.addEventListener(‘close’,function(e) 
{ 
Ti.API.info(「The application is being shutdown」); 
}); 

我想創建一個事件處理程序,彈出一個警告問:「你確定要退出應用程序」,以防萬一有人按下了錯誤的鑰匙......

是這是可能的,你能取消關機事件嗎?

+0

不確定關於Android,但你不能在iOS上。 – EmilioPelaez

+0

我的猜測是,這只是一個Andriod問題。感謝Emilio。 – Greg

+0

但是在android中沒有這種「關閉」。即使應用程序已關閉(在前臺不可見),仍然有可能由於某些服務而繼續運行。 – Enzokie

回答

0

簡短的回答是:不,你不能

您可以跟蹤相關的應用程序的生命週期事件,但你不能避免這種情況發生。如果沒有深入瞭解用戶的不良體驗,那麼可以讓我們談談用戶場景的樣子。

如果您正在使用您的Android手機,並且您想關閉某個應用程序,並且它只是不斷詢問您是否確定要關閉該應用程序,那麼程序員會忽略Yes操作並使應用程序繼續運行。這是多麼不安全和惱人?

+0

我知道這聽起來不安全和煩人,但也是無意中關閉應用程序而不是背景。具體來說,我正在開發一個GPS跟蹤應用程序,我的一個或兩個測試用戶抱怨他們錯誤地關閉了應用程序而不是後臺。我想在我進入市場之前嘗試並阻止它。 – Greg

+0

@Greg在那個用例中,我建議跟蹤所有必要的信息,以便在意外關閉的情況下「恢復」應用程序任務。當應用程序打開時,您檢查數據,如果您有什麼,那麼您恢復您的操作。 –

1

您只能在Android中執行此操作。這在iOS上是不可能的。

此外,在Android上,只有在按下後退按鈕而不是從任務管理器關閉應用程序時才能完成此操作。

這裏是你如何做到這一點在Android:

<Alloy> 
    <Window id='win'> 

    </Window> 
</Alloy> 


// for Ti SDK 6.0.0.GA or above, you need to use this code 
$.win.onBack = close; 

// else use this code for SDK 5.5.1 or below 
$.win.addEventListener('androidback', close); 

function close() { 
    alert('Do you want to shut down app????'); 
} 

閱讀有關androidback event here

並添加上述重大更改門票: https://jira.appcelerator.org/browse/TIMOB-19919

+0

也可以添加應用程序作爲意圖,以便用戶不能滑動/關閉? http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Android.Notification – Greg

+0

恕我直言,這可能是不可能的(至少使用鈦)。 –

0

我設法解決這個首先掛鉤到Android back事件中,然後使用bencoding Alarm Manager不斷運行後臺代碼。這樣,如果有人關閉用戶界面,應用程序將繼續在後臺運行。

相關問題