У меня возникла необычная проблема. В моем приложении для Android я регистрирую все события жизненного цикла активности в рутине. Один из моих действий должен быть закончен, когда откроется другой. Однако иногда я получаю ошибки, потому что они не закрыты. При расследовании кажется, что деятельность уничтожается, но затем перезапускается - ниже - соответствующая часть журнала моего приложения, самое последнее событие сначала:Активность Android Жизненный цикл: OnRestart вызывается после OnDestroy
dt = "16: 37: 47: 982" (1) Деятельность [ подробности работы] возобновлено
дт = "16: 37: 47: 980" (1) активность [Детали задания] перезапущен
дт = "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
Мои операторы журнала в базовом классе для каждого вида деятельности. Моя активность таким образом объявлена (это написано в 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
}
Вы можете показать, где у вас есть ваши записи журнала. – Raghunandan