Android14 开发之Broadcast延迟及Service常驻等新特性说明

Android14 开发之Broadcast延迟及Service常驻等新特性说明

Android14 开发之Broadcast延迟及Service常驻等新特性说明

Broadcast延迟问题

FLAG_RECEIVER_FOREGROUND 是 Android 中的一种标志,它用于将广播接收器(BroadcastReceiver)标记为前台广播。前台广播具有较高的优先级,系统会尽快调度前台广播接收器处理广播,确保及时性。

使用方法

使用 FLAG_RECEIVER_FOREGROUND 主要在两个场景中:

发送广播时:将广播标记为前台广播。

接收广播时:确保接收器在前台运行。

发送前台广播

在发送广播时,可以使用 sendBroadcast 方法,并传入一个 Intent 和 FLAG_RECEIVER_FOREGROUND 标志。例如:

val intent = Intent("com.example.ACTION")

intent.flags = Intent.FLAG_RECEIVER_FOREGROUND

sendBroadcast(intent)

示例代码

下面是一个完整的示例,包括发送和接收前台广播的代码。

发送前台广播

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

// 发送前台广播

val intent = Intent("com.example.ACTION")

intent.flags = Intent.FLAG_RECEIVER_FOREGROUND

sendBroadcast(intent)

}

}

注册广播接收器

要接收广播,需要在 AndroidManifest.xml 中静态注册广播接收器,或者在代码中动态注册。

静态注册(AndroidManifest.xml):

动态注册(代码):

class MainActivity : AppCompatActivity() {

private lateinit var receiver: MyBroadcastReceiver

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

// 动态注册广播接收器

receiver = MyBroadcastReceiver()

val filter = IntentFilter("com.example.ACTION"

相关文章

新内裤不洗直接穿会怎么样
365bet亚洲最大网投

新内裤不洗直接穿会怎么样

📅 08-07 👁️ 2230