2017-02-17 8 views
0

У моего приложения было странное поведение, поэтому я воссоздал приложение до момента, когда он прослушивал и обнаружил, что ScreenOrientation.Landscape является виновником.Xamarin Android возможно ScreenOrientation.Landscape ошибка

Если вы сделаете новое пустое приложение в визуальной студии 15 и заменить MainActivity с:

[Activity(Label = "TestLandscapeBug", MainLauncher = true, Icon = "@drawable/icon", 
    ScreenOrientation = ScreenOrientation.Landscape)] 
public class MainActivity : Activity 
{ 
protected override void OnCreate(Bundle bundle) 
{ 
    System.Console.WriteLine("OnCreate"); 
    base.OnCreate(bundle); 

    SetContentView(Resource.Layout.Main); 
} 
protected override void OnDestroy() 
{ 
    System.Console.WriteLine("OnDestroy"); 
    base.OnDestroy(); 
} 
protected override void OnPause() 
{ 
    System.Console.WriteLine("OnPause"); 
    base.OnPause(); 
} 
protected override void OnRestart() 
{ 
    System.Console.WriteLine("OnRestart"); 
    base.OnRestart(); 
} 
protected override void OnResume() 
{ 
    System.Console.WriteLine("OnResume"); 
    base.OnResume(); 
} 
protected override void OnStart() 
{ 
    System.Console.WriteLine("OnStart"); 
    base.OnStart(); 
} 

protected override void OnStop() 
{ 
    System.Console.WriteLine("OnStop"); 
    base.OnStop(); 
} 

} 

запустить приложение и нажмите кнопку режима сна: OnPause, OnStop, OnDestroy, OnCreate, OnStart, OnResume и Вызывается OnPause.

Если вы удалите ScreenOrientation = ScreenOrientation.Landscape OnPause и OnStop.

Это ошибка? Или я делаю что-то неправильно? Как я могу исправить это или использовать что-то другое, которое блокирует экран в ландшафте.

ответ

1

Нормальное действие для перехода в портретный режим, когда экран заблокирован. Всякий раз, когда меняется ориентация, вызывается OnDestroy, а затем OnCreate. Итак, вам не о чем беспокоиться, поскольку то, что вы наблюдаете, - это поведение Android по умолчанию.

Портрет типа по умолчанию ориентация для блокирующего экрана, поэтому имеет смысл, что ваша деятельность также переключается на это при блокировке.

+1

Вы также можете использовать [Actitity (ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize)] для блокировки отдыха. –

+0

@ b.holz Приятно знать, не думал об этом! – hankide

 Смежные вопросы

  • Нет связанных вопросов^_^