Splash Screen Activity forces my device to restart

JamshaidKamranJamshaidKamran PKMember ✭✭
edited March 26 in Xamarin.Android

I viewing an article on Xamarin that guides how we can add a Splash Screen on an AppCompatActivity. Whenever I run the application it forces my device to restart.

Here is what I have done to get the issue solved and I was failed.

  1. Setting the Java max heap size to 1G
  2. Properly followed the steps listed on Xamarin article for splash screen creation
  3. Properly installed AppCompatv7 and v4 support

Still the issue is there.
Here is my code for it maybe I am doing something wrong in the coding part.

Splash Activity

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Support.V7.App;
using Android.Views;
using Android.Widget;

namespace TestApp
{
    [Activity(Label = "SplashActivity", MainLauncher = true, NoHistory = true, Theme = "@style/MyTheme.Splash")]
    public class SplashActivity : AppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your application here
            var startupTask = new Task(SimulateStartup);
            startupTask.Start();

        }
        private async void SimulateStartup()
        {
            await Task.Delay(4000);
            var intent = new Intent(this, typeof(MainActivity));
            intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask);
            StartActivity(intent);
        }
    }
}

MainActivity

using System.Threading.Tasks;
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.V7.App;
using System;
using Android.Content;

namespace TestApp
{
    [Activity(Label = "MainActivity")]
    public class MainActivity : AppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView (Resource.Layout.Main);
        }


    }
}

Styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="MyTheme.Base" parent="Theme.AppCompat.Light">
  </style>

  <style name="MyTheme" parent="MyTheme.Base">

  </style>

  <style name="MyTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_screen</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
  </style>
</resources>

splash_screen.xml

<?xml version="1.0" encoding="utf-8" ?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <color android:color="@color/splash_background"/>
  </item>
  <item>
    <bitmap android:src="@drawable/splash" android:tileMode="disabled" android:gravity="center" /> 
  </item>
</layer-list>

colors.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <color name="primary">#4682b4</color>
  <color name="primaryDark">#2c6493</color>
  <color name="accent">#FFC107</color>
  <color name="window_background">#F5F5F5</color>
  <color name="splash_background">#4682b4</color>
</resources>

Answers

  • duffthebluffduffthebluff PHMember ✭✭

    Was encountering this issue as well. Turns out the image I use was way too big in pixels. Learned from a different site that if you use a big image for the icon, it would force restart the phone. I resized the image and now it's working.

Sign In or Register to comment.