我有一个应用程序类的扩展,我需要在我创建的BroadcastReceiver中获取引用。传递到“onReceive”的上下文是受限上下文。有没有办法获得对实际应用程序上下文的引用?
class SMSReceiver: BroadcastReceiver() {
@RequiresApi(Build.VERSION_CODES.O)
override fun onReceive(context: Context?, intent: Intent?) {
val smsIntent = intent ?: return
val appContext = context?.applicationContext ?: return
// Do something here.
}
}
BroadcastReceiver已经提供了上下文。看这张照片。
public void onReceive(Context context, Intent intent)
调用getApplication ationContext()
上提供给您的Context
中的,就像您在
活动
上调用getApplication ationContext()
一样。
我有一个应用程序的扩展,它允许我以非静态方式获取对我需要的几个对象的引用。
虽然应用程序
在语法上不是静态的,但它具有相同的影响,特别是在内存泄漏方面。
问题内容: 有人可以解释和之间的确切区别吗? 在什么情况下我们必须使用每个Receiver类? 问题答案: 和之间只有一个区别。 当您收到内部广播方法时, 假设, BroadcastReceiver : 它 不保证 该 CPU将保持清醒 ,如果你启动一些长时间运行的进程。CPU可能会立即回到睡眠状态。 WakefulBroadcastReceiver : 这是 保证 该 CPU将保持清醒 ,直到你
我是Spring的初学者。今天,当我在阅读Spring core文档时,我在第1.3章中发现了以下说明。Bean概述 除了包含关于如何创建特定bean的信息的bean定义外,ApplicationContext实现还允许注册(由用户)在容器外部创建的现有对象。这是通过getBeanFactory()方法访问ApplicationContext的BeanFactory来完成的,该方法返回BeanFa
问题内容: 应用启动后,我需要一直保持广播接收器始终运行。 这是在应用程序中注册此接收器的代码 和接收器代码 问题答案: 你可以使用服务 在主应用中启动/停止服务 服务
我试图在Android中创建一个应用程序,仅由1个广播接收器(而不是其他)组成。 广播接收器应该简单地捕捉广播(例如收到的短信,记录信息并完成)。然而,我注意到广播没有被接收器捕捉到,除非我指出我有主活动,如下Androidanifest.xml将显示: 我甚至不需要在应用程序中有一个活动类。此外,如果我在意图过滤器中删除android.intent.category.LAUNCHER或andro
清单中是否需要receiver/intent-filter块,如果需要,如何在第一行中命名侦听器? 在onReceive()中无法收到传入消息副本的可能原因是什么?我应该做些什么来更正它? 我是否需要发送消息并在onReceive()中“捕获它”以便可靠地获得设备的电话号码,或者我是否可以从用户那里请求读取SMS的权限,然后只需读取第一条消息即可获得传入的电话号码? 请注意,我已经通读了所有类似的
我正在尝试拥有自己的蓝牙kotlin实现,但遇到了一个问题。 我正在按照这里的kotlin教程启动一个用于扫描蓝牙设备的广播接收器。 问题是,当我试图从广播接收器将每个发现的设备添加到主活动范围内的可变列表中,以便将列表发送到颤振端时,我总是得到一个空值。 由于我是kotlin和android的新手,我无法真正理解我到底哪里出错了,以及我需要了解哪些概念才能做我需要做的事情。 Kotlin主要活动