Xamarin 表单应用程序在启动时自动启动后崩溃

问题描述 投票:0回答:0

我创建了一个 xamarin 表单应用程序。我添加了一个广播接收器以在启动时自动启动应用程序。我重新启动了手机,应用程序自动正确启动,但大约 2 分钟后应用程序崩溃了。请注意,只有在开机自动启动的情况下,应用程序才会崩溃。

测试设备:Samsung Galaxy S8 (Android 9) 和部分安卓电视设备

以下已经尝试过的事情。

  1. 前台服务
  2. 试图从电池优化中排除应用程序,但没有任何效果。

应用清单

<uses-sdk android:targetSdkVersion="29" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.DEVICE_POWER" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
    <uses-feature android:name="android.software.leanback" android:required="false" />
    <application android:label="ABC" android:icon="@drawable/icon" android:banner="@drawable/banner">
        <receiver android:name=".MyCustomReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
        </receiver>
    </application>


[BroadcastReceiver]
    [IntentFilter(new[] { Intent.ActionBootCompleted }, Priority = (int)IntentFilterPriority.HighPriority)]
    public class MyCustomReceiver : BroadcastReceiver
    {
        

        public override void OnReceive(Context context, Intent intent)
        {
            
            if(Intent.ActionBootCompleted.Equals(intent.Action))
            {
                Intent actIntent = new Intent(context, typeof(MainActivity));
                actIntent.AddFlags(ActivityFlags.NewTask);
                context.StartActivity(actIntent);
            }
        }
    }
android xamarin xamarin.forms xamarin.android
© www.soinside.com 2019 - 2024. All rights reserved.