android - 如何从广播接收器调用片段方法
问题描述
在我的片段中,我检查了位置是否一切正常,如果位置关闭,它会将用户发送到设置屏幕。
如果用户从设置屏幕打开位置,我想调用片段中的一些方法。
我试图解决这个问题,并且我注册了广播接收器以在位置开启/关闭时获取更新 -
override fun onAttach(context: Context) {
super.onAttach(context)
val intentFilter = IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION)
context.registerReceiver(locationBroadcastReceiver, intentFilter)
}
override fun onDetach() {
super.onDetach()
context?.unregisterReceiver(locationBroadcastReceiver)
}
这种方法有两个问题:
A -OnReceive
每次我打开/关闭位置时,都会调用 3/4 次覆盖方法
B - 如何在用户更改位置提供程序状态后从接收方调用片段方法以便继续使用我的代码?
解决方案
您可以FragmentManager.findfragmentbytag
用于查找所需的片段,然后调用相应的方法
推荐阅读
- java - 我们可以在 java 中创建一个 Graphql api 的模拟服务吗?
- elixir - 尝试使用路由会话删除注销,但该路由正在尝试重定向到会话获取
- javascript - Vue 中的动态指令
- python - 这段代码关于递归算法的时间复杂度是多少
- java - 实施 SPI 以扩展 Keycloak API - 找不到资源
- node.js - 使用 docker node.js 图像时覆盖 chrome 二进制路径
- javascript - 尝试使用 Axe-Core 进行可访问性测试时出现错误“org.openqa.selenium.JavascriptException: javascript error: eval is disabled”
- flutter - 用颤振在谷歌上获取地理点和设置标记
- php - 如何自定义 403 异常页面?
- javascript - Firebase getUserByEmail 不返回用户信息