c# - 启动画面 Activity 强制我的设备重新启动

标签 c# android xamarin android-appcompat splash-screen

我正在查看关于 Xamarin 的一篇文章,该文章指导我们如何在 AppCompatActivity 上添加启动画面。每当我运行该应用程序时,它都会强制我的设备重新启动。

这是我为解决问题所做的工作,但我失败了。

  1. 将 Java 最大堆大小设置为 1G
  2. 正确遵循 Xamarin article 中列出的步骤用于启动画面创建
  3. 正确安装 AppCompatv7 和 v4 支持

问题依旧存在。 这是我的代码也许我在编码部分做错了。

启动 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);
        }
    }
}

主 Activity

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);
        }


    }
}

样式.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>

最佳答案

请检查您的位图大小。如果它太大,可能会导致重启:参见 Xamarin Android App causes device reboot

关于c# - 启动画面 Activity 强制我的设备重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030329/

相关文章:

Android - 将我的应用程序按钮添加到锁定屏幕?

Android Kotlin - 如何读取 Activity 内的 NFC 标签

c# - MessagingCenter.Send 上的 System.Reflection.TargetInvocationException

c# - 我是否应该使用与 .NET BCL 的名称冲突的(否则是最佳的)类名称?

c# - Unity C# 向围绕移动轴旋转的目标发射炮弹

c# - 当请求模型实际上无效时,ModelState 有效

javascript - Angular 5/6 : Handle File Download (w/Friendly File Name) from ASP. NET 核心 API HTTP

android - 当应用关闭时,就像在VLC Player中一样,在后台(在通知栏中)播放视频声音(在通知栏中)

android - Xamarin Android 应用无法初始化 Facebook SDK

android - 'MyFirstApp.Resource.Id' 不包含 'myButton' (CS0117) (MyFirstApp) 的定义