2017-01-31 13 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

Я предполагаю, что это только проблема Андрея. Спасибо Эмилио. – Greg

+0

Но такого «закрытия» в андроиде нет. Даже приложение закрыто (не видно на переднем плане), все же возможно, что он продолжает работать из-за некоторых сервисов. – 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

IMHO, возможно, это невозможно (по крайней мере, с использованием Titanium). –

0

мне удалось решить эту проблему проблему, сначала подключаясь к событию Android back, а во-вторых, используя bencoding Alarm Manager для постоянного запуска фонового кода. Таким образом, если кто-то закрыл интерфейс, приложение продолжало работать в фоновом режиме.

Смежные вопросы