簡體   English   中英

Android活動生命周期:在OnDestroy之后調用OnRestart

[英]Android Activity Life Cycle: OnRestart being called after OnDestroy

我遇到了一個不尋常的問題。 在我的Android應用程序中,我記錄所有活動生命周期事件作為例行事項。 當另一個活動打開時,我的一個活動應該完成。 但是,偶爾我會發現錯誤,因為它還沒有關閉。 經過調查,似乎活動正在被銷毀,但隨后重新開始 - 以下是我的應用程序日志的相關部分,最近的事件是:

dt =“16:37:47:982”(1)活動[工作細節]恢復

dt =“16:37:47:980”(1)活動[作業詳細信息]重新啟動

dt =“16:34:54:689”(1)被破壞的活動[工作細節]

dt =“16:34:54:686”(1)活動[工作細節]停止

根據活動生命周期OnRestart在OnDestroy之后無法調用,請參閱http://developer.android.com/reference/android/app/Activity.html所有相關活動生命周期事件都會被記錄 - 例如OnCreate會導致輸入在我的日志中,但沒有證據證明這一點! 有沒有人見過類似的東西? 我不知道發生了什么事! 這發生在Android 5.0上

我的日志語句位於每個活動的基類中。 我的Activity被聲明(它是用C#/ Xamarin編寫的):

[Activity(Label = "Job Details")]
 public class WebViewer : BaseActivity

其中BaseActivity包含我記錄的所有生命周期事件的覆蓋。 例如:

public class BaseActivity : Activity, IForceLogOff, ISettingsUpdated,  IJobUnassigned, IDisplayUpgradeWarning
    {
protected override void OnDestroy()
    {
        base.OnDestroy();
        Log.WriteLog("Activity [" + this.Title + "] on destroyed", ELogType.GUI);
        AppStorage.GetAppStorageInstance().LastGUIActivityDT = TConverting.GetCurrentDT();
        NoInstancesManager.DecrementCount(this.GetType().FullName);
    }

    protected override void OnRestart()
    {
        base.OnRestart();
        Log.WriteLog("Activity [" + this.Title + "] restarted", ELogType.GUI);
        AppStorage.GetAppStorageInstance().LastGUIActivityDT = TConverting.GetCurrentDT();
    }

etc
}

在銷毀活動和重新啟動活動之間差不多有3分鍾。 我猜你自己重啟了嗎?

PS:您的活動代碼可能有助於識別問題,如果有的話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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