[英]Restart the application on resume using unity in c#
我目前正在為 android 和 ios 平台開發一個統一的應用程序。 我已經使用本機編碼分別在平台中實現了深層鏈接。 我現在遇到的問題是,如果應用程序是第一次啟動 Activity 而沒有從最近的歷史記錄中恢復,那么深度鏈接在 android 和 ios 設備中都能很好地工作。 如果應用程序被最小化,然后如果在網頁上單擊了深層鏈接,則應用程序只會恢復但不會傳遞深層鏈接數據。 我知道這是因為我在void Start()
方法中調用了深層鏈接方法。 我嘗試獲取布爾值以檢查活動中的數據並在void Update()
方法中重新加載深層鏈接部分。 但它不起作用。
我在谷歌上嘗試了幾個小時以尋求解決方案。 剩下的唯一選擇是在應用程序恢復后重新啟動應用程序,這樣整個事情將從頭開始運行,因此深層鏈接將在其中運行。
我嘗試在 info.plist 中為 ios 添加“應用程序不在后台運行”屬性。它有效,但我不能為 android 做到這一點。
我在 mac 上使用 unity 5.3.1f1 並且函數void OnApplicationPause
void OnApplicationFocus
都不適用於它。 我手動調試了代碼,它沒有調用該函數。
如果有人能讓我知道 unity 或 android 中是否有一種方法可以實現我的嘗試,那將是一個非常大的幫助。 謝謝
OnApplicationPause
和OnApplicationFocus
是執行此操作的最佳和推薦方法。 OnApplicationPause
和OnApplicationFocus
沒有在Android上被調用,因為你的一些腳本中可能有Application.runInBackground
。 如果您有它們,請將其刪除。
此外,要OnApplicationPause
和OnApplicationFocus
,您必須從 MonoBehavior 繼承。 您的腳本應如下所示:
public class ExampleClass : MonoBehaviour {
void OnApplicationPause(bool pauseStatus) {
}
void OnApplicationFocus(bool focusStatus) {
}
}
代替:
public class ExampleClass : OTHERCLASS{
void OnApplicationPause(bool pauseStatus) {
}
void OnApplicationFocus(bool focusStatus) {
}
}
或者:
public class ExampleClass {
void OnApplicationPause(bool pauseStatus) {
}
void OnApplicationFocus(bool focusStatus) {
}
}
如果這不能解決您的問題,那么這可能是一個錯誤。 將 unity 從5.3.1f1更新到5.3.3,因為這是最新版本,可能會解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.