2016-05-10 2 views
1

Черный экран с заголовком приложения отображается при сворачивании приложения при загрузке заставки, также через некоторое время отобразится первый экран. Вот моя активность всплеска и основные классы активности.Xamarin создает проблему с заставкой экрана

[Activity(Theme = "@style/Theme.Splash", Icon = "@drawable/icon", MainLauncher = true, NoHistory = true, 
    ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, 
    ScreenOrientation = ScreenOrientation.Behind)] 
public class SplashActivity : Activity 
{ 
    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     var dpWidth = Resources.DisplayMetrics.WidthPixels/Resources.DisplayMetrics.Density; 


     RequestedOrientation = dpWidth > 700 ? ScreenOrientation.Unspecified : ScreenOrientation.Portrait; 

     ThreadPool.QueueUserWorkItem(o => LoadActivity()); 
    } 

    private void LoadActivity() 
    { 

     RunOnUiThread(() => StartActivity(typeof(MainActivity))); 
    } 


    public override void OnBackPressed() 
    { 
     Environment.Exit(0); 
    } 
} 



[Activity(Label = "HACCP", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 
public class MainActivity : FormsApplicationActivity 
{ 


    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     ActionBar.SetIcon(Android.Resource.Color.Transparent); 

     Forms.Init(this, bundle); 

     // some function // 

     LoadApplication(new App()); 
    } 

} 
+0

Выпуск фиксируется при установке NoHistory флаг ложной. –

ответ

0

Не уверен, если атрибут деятельности ScreenOrientation = ScreenOrientation.Behind) вызывает какие-либо проблемы, мы не используем, что в наших приложениях.

Вот «стандарт» всплеск активности мы используем, позволяя Xamarin.Android позаботиться о синхронизации и т.д.:

public class SplashActivity : Activity 
{ 
    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Start main. 
     StartActivity(typeof(MainActivity)); 
    } 
} 

Вы могли бы попытаться упростить приложение аналогичным образом.

1

Вы помечено Xamarin.Forms поэтому она должна быть столь же просто, как ..

class App : Application 
{ 
    public App() 
    { 
     MainPage = new MySplashPage(); 
    } 
} 

class MySplashPage : ContentPage 
{ 
    public MySplashPage() 
    { 
     Task.Delay(3000); //show my pretty splash for 3 seconds 
     Application.Current.MainPage = new MyOtherSpiffyPage(); 
    } 
} 
Смежные вопросы