“重新启动接收器”不工作 android [Xamarin.Android]

安德烈斯·基罗斯·瓦尔多维诺斯

我正在尝试使用以下代码实现一个广播接收器,该接收器在设备重新启动时获取广播,但无法正常工作(它应该在设备重新启动时向我发送祝酒词):

广播接收器:

    [BroadcastReceiver]
    public class RebootReceiver : BroadcastReceiver
    {
        public override void OnReceive(Context context, Intent intent)
        {
            if (Intent.ActionBootCompleted.Equals(intent.Action))
            {
                Toast.MakeText(
                    context,
                    "Your app has been rebooted!",
                    ToastLength.Long).Show();
            }
        }
    }

清单文件

<receiver android:name=".RebootReceiver">
        <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED"></action>
        </intent-filter>
      </receiver>

和清单内的许可

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

希望帮助,谢谢

安德烈斯·基罗斯·瓦尔多维诺斯

我已经解决了这个问题,@FreakyAli 的回答实际上也有助于解决问题

创建服务:

[Service(Name = "com.companyname.app.RebootService")]
    public class RebootService : Service
    {
        public override void OnCreate()
        {
            base.OnCreate();
        }

        public override IBinder OnBind(Intent intent)
        {
            return null;
        }
        public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
        {
            Toast.MakeText(this, "Service STARTED!", ToastLength.Long).Show();
            return StartCommandResult.Sticky;
        }

        public override void OnDestroy()
        {
            base.OnDestroy();

            Toast.MakeText(this, "Service STOPED", ToastLength.Long).Show();
        }
    }
}

创建广播接收器:

 [BroadcastReceiver(Enabled =true, Name ="com.companyname.Sortex.RebootReceiver")]
        [IntentFilter(new[] { Intent.ActionBootCompleted })]
        public class RebootReceiver : BroadcastReceiver
        {
            public override void OnReceive(Context context, Intent intent)
            {
            }
        }

在 AndroidManifest.xml 上注册 Service 和 BroadcastReceiver

<service android:name="com.companyname.app.RebootService"/>
<receiver android:name="com.companyname.app.RebootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

在广播接收器的 OnReceive 方法上调用服务:

Intent serviceIntent = new Intent(context, typeof(RebootService));
context.StartService(serviceIntent);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android在广播接收器中暂停并重新启动警报管理器

Android Wear中的启动接收器

Xamarin android在特定时间重新启动完全关闭的应用-Android版本10.0

xamarin.android接收器出现BOOT_COMPLETED错误

广播接收器未通过Xamarin Android中的OnReceive方法显示Toast

Xamarin.Android:检测 SMS 传送的广播接收器中的 SMS

Xamarin Android-BroadcastReceiver问题-无法实例化接收器

启动外部活动后,Xamarin.Forms Android应用程序将重新启动

Xamarin Android OnBackPressed无法启动

从Xamarin表单启动android服务

xamarin android模拟器无法启动

Android-从广播接收器启动应用程序

启动接收器在 Android 10 上不起作用

如何从Android中的Activity启动接收器类?

Xamarin Android播放器

Kotlin中的接收器类型与Android的“ activityViewModels”不匹配

Android .finish() 工作直到应用程序重新启动

android getContentResolver()。notifyChange()不会重新启动我的加载器

Xamarin.Android:启动活动并等待结果

Xamarin Android在启动“获得SIGSEGV”时崩溃

Xamarin Android中的启动屏幕太慢

如何从 Xamarin 表单页面启动 Android 活动?

在Xamarin Forms中启动Android活动?

Xamarin Android应用启动后立即关闭

Xamarin Android:动画启动画面

Xamarin.Android启动画面大小

在Android Xamarin Studio中从DialogFragment启动活动

Xamarin.Android 的 AppCenter“应用启动”失败

Android广播接收器,每次应用启动时都会接收广播