2017-02-22 8 views
0

Я работаю над Unity для iOS & Android-приложение, которое получает местоположение пользователя в фоновом режиме. Я хочу поймать момент, когда приложение станет фоном, но OnApplicationPause никогда не звонил.Работает ли Unity OnApplicationPause на iOS/Android?

Я установил только Debug.Log() вызов внутри метода OnApplicationPause, чтобы гарантировать, что событие инициировано, но это не так.

Мой код:

public class GPSService : MonoBehaviour { 

    ... 

    void OnApplicationPause(bool paused){ 
     Debug.Log("Paused"); 
     if(paused){  
     UnityEngine.SceneManagement.SceneManager.LoadScene("Background"); 
     } 
    } 
} 

Где проблема? И как это исправить?

Я протестировал это поведение на Unity 5.4.4f1 и 5.5.1p4.

Тестируемые устройства: iPhone 4s, Doogee X5 Max (Android 6.0.1)

+0

Это не работает на Android или iOS? – Programmer

+0

@Programmer и –

+0

Хорошо. Могу ли я увидеть, как вы реализовали функцию и что внутри? Кроме того, что заставляет вас думать, что это не работает или не называется? Вы использовали 'Debug.Log'? – Programmer

ответ

1

Использование Try OnApplicationFocus (BOOL)

на Android, когда экранная клавиатура включена, она вызывает OnApplicationFocus (false). Кроме того, если вы нажмете «Домой» в тот момент, когда клавиатура включена, событие OnApplicationFocus() не вызывается, но вместо этого вызывается OnApplicationPause().

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnApplicationFocus.html 
Смежные вопросы