C
AndroidBroadcastReceiver QML 类型
允许接收广播并通过自定义Intent 过滤器进行过滤。更多...
导入声明 | import QtAndroidAutomotive.Base |
自 | QtAndroidAutomotive 6.5 |
属性
- running : bool
方法
详细描述
AndroidBroadcastReceiver 可以用来接收广播并通过自定义 Intent 过滤器进行过滤。以下是一个小示例,它监听特定的动作并提取在键 "data" 下的 extras 属性中存储的数据
AndroidBroadcastReceiver { id: receiver AndroidIntentFilter { actions: [ "ACTION_SEND_STORY" ] dataAuthorities: [ { host: "com.qt.story" } ] dataPaths: [ { pattern: "/story", matchType: AndroidMatchPattern.PATTERN_LITERAL } ] dataSchemes: [ "content" ] } onReceived: function(intent) { if (intent.extras.hasOwnProperty("storytext")) { console.log("Received story:", intent.extras.storytext) } } }
AndroidBroadcastReceiver 存活在 UI 线程中,因此当 UI 线程处于挂起状态时(意味着应用不在前台),它不会处理接收到的广播。相反,新的广播将被放在事件队列中,一旦 UI 线程恢复,就会进行处理。如果您只需要在应用处于前台时接收广播,建议在应用即将挂起时调用 stop()。当应用再次激活时,可以通过 start() 重新启动广播接收。
以下是如何跟踪应用状态并在其变化时启动/停止 AndroidBroadcastReceiver 的示例
AndroidBroadcastReceiver { running: Application.state === Qt.ApplicationActive AndroidIntentFilter { } }
属性文档
running : bool |
此属性持有了接收器的状态。如果此接收器正在运行,它将返回 true
,否则返回 false
。
方法文档
bool start() |
启动接收器。一旦运行,它将变得活跃并开始接收广播,直到停止。
如果成功,返回 true
,否则返回 false
。
bool stop() |
停止接收器。此接收器将不再接收广播,直到再次启动。
如果成功,返回 true
,否则返回 false
。
在特定的 Qt 许可证下提供。
了解更多信息。