【发布时间】:2015-02-25 09:43:23
【问题描述】:
我遇到了一个不寻常的问题。在我的 Android 应用程序中,我将所有活动生命周期事件记录为例行公事。我的一项活动应该在另一项活动打开时完成。但是,有时我会出现错误,因为它尚未关闭。经调查,该活动似乎正在被破坏,但随后又重新启动 - 以下是我的应用日志的相关部分,最近的事件首先:
dt="16:37:47:982" (1) Activity [职位详情] 恢复
dt="16:37:47:980" (1) Activity [Job Details] 重启
dt="16:34:54:689" (1) Activity [Job Details] 被销毁
dt="16:34:54:686" (1) Activity [Job Details] 停止
根据Activity生命周期OnDestroy后不能调用OnRestart,见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
}
【问题讨论】:
-
你能显示你的日志语句在哪里吗?
标签: android android-activity activity-lifecycle