我正在使用Unity for iOS和Android应用程序,它可以在后台获取用户的位置。我想抓住应用程序成为后台的时刻,但是OnApplicationPause
从未调用过。
我只在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 :(得分:1)
尝试使用OnApplicationFocus(bool)
在Android上,当启用屏幕键盘时,会导致OnApplicationFocus(false)事件。此外,如果在启用键盘时按Home键,则不会调用OnApplicationFocus()事件,而是调用OnApplicationPause()。
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnApplicationFocus.html