簡體   English   中英

在 C# 中使用 unity 在恢復時重新啟動應用程序

[英]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 中是否有一種方法可以實現我的嘗試,那將是一個非常大的幫助。 謝謝

OnApplicationPauseOnApplicationFocus是執行此操作的最佳和推薦方法。 OnApplicationPauseOnApplicationFocus沒有在Android上被調用,因為你的一些腳本中可能有Application.runInBackground 如果您有它們,請將刪除

此外,要OnApplicationPauseOnApplicationFocus ,您必須從 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM