Android活动生命周期:在OnDestroy之后调用OnRestart

时间:2015-02-25 09:43:23

标签: android android-activity activity-lifecycle

我遇到了一个不寻常的问题。在我的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)活动[工作细节]停止

根据活动生命周期,OnDestroy后无法调用OnRestart,请参阅http://developer.android.com/reference/android/app/Activity.html 记录所有相关活动生命周期事件 - 例如OnCreate将导致我的日志中的条目,但没有证据证明这一点! 有没有人见过类似的东西?我不知道发生了什么! 这发生在Android 5.0上

我的日志语句位于每个活动的基类中。因此声明了我的活动(它是用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
}

1 个答案:

答案 0 :(得分:0)

在销毁活动和重新启动活动之间差不多有3分钟。我猜你自己重启了吗?

PS:您的活动代码可能有助于识别问题,如果有的话。