Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – BroadcastReceivers在收听BOOT_COMPLETED时会收到哪些上下文?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当手机断电时,Android中的AlarmManagers会丢失所有已注册的闹钟.

在Android启动时使用以下广播接收器来触发:

public class AlarmBootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context,Intent intent) {
        if (intent.getAction().equals("android.intent.action.bOOT_COMPLETED")) {
            cursor alarmcursor = MainActivity.dbHelper.loadAlarms();
            // Iterate through every stored alarm and set those alarms.
            // ....
            alarmcursor.close();
        }
    }
}

>当在系统启动时触发广播接收器的onReceive时,该方法会给出什么上下文参数?我必须知道上下文,因为我需要上下文来取消在该上下文中设置的警报.
>我假设@L_223_3@mainActivity.dbHelper.loadAlarms()不安全,因为MainActivity未在系统启动时初始化.或者它是否安全,因为dbHelper和loadAlarms()都被初始化并声明为静态?

@H_301_19@解决方法

在这种情况下,您将在onReceive()中获取全局应用程序Context.但是,这是无关紧要的.你不需要知道.

要在以后取消警报,您将创建一个PendingIntent,您可以使用您想要执行此操作的任何上下文.警报未链接到特定上下文,它们仅链接到特定应用程序.

如果dbHelper确实是静态的并且在创建实例时初始化(而不是在onCreate()中),则此调用很好.通常,在活动上调用静态方法是不受欢迎的,因为假设已正确设置Activity,很容易做一些愚蠢的事情.最好将这些静态方法移动到一般的实用程序类,它不是一个Activity,只包含静态方法.这看起来不那么可疑了.

大佬总结

以上是大佬教程为你收集整理的android – BroadcastReceivers在收听BOOT_COMPLETED时会收到哪些上下文?全部内容,希望文章能够帮你解决android – BroadcastReceivers在收听BOOT_COMPLETED时会收到哪些上下文?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。