首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android 开发者

    使用协程和 Flow 简化 API 设计

    我们可以通过为 FusedLocationProviderClient 创建扩展函数来获得更好的 API: suspend fun FusedLocationProviderClient.awaitLastLocation 参见下面的实现: // FusedLocationProviderClient 的扩展函数,返回最后已知位置 suspend fun FusedLocationProviderClient.awaitLastLocation 理想的 API 看起来应该像下面这样: fun FusedLocationProviderClient.locationFlow(): Flow<Location> 为了将基于回调的 API 转换为 Flow 将上述步骤应用于当前用例,我们得到以下实现: // 发送位置更新给消费者 fun FusedLocationProviderClient.locationFlow() = callbackFlow<Location val FusedLocationProviderClient.locationFlow() = callbackFlow<Location> { ... }.shareIn( // 让 flow

    2.2K20编辑于 2022-03-09
  • 来自专栏Android、鸿蒙开发

    Android Google Maps

    private lateinit var fusedLocationProviderClient: FusedLocationProviderClient // 最后已知位置 private applicationContext, BuildConfig.MAPS_API_KEY) placesClient = Places.createClient(this) // 构造 FusedLocationProviderClient fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this) 添加位置如下图所示: 下面我们需要写一个 private lateinit var fusedLocationProviderClient: FusedLocationProviderClient // 最后已知位置 private fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this) val mapFragment

    2.5K10编辑于 2024-11-28
  • 来自专栏APP开发

    Android APP性能优化

    优化定位服务:使用低功耗的定位模式(如FusedLocationProviderClient)。减少WakeLock使用:避免长时间持有WakeLock,及时释放。

    91700编辑于 2025-02-21
  • 来自专栏Android 开发者

    Flow 操作符 shareIn 和 stateIn 使用须知

    每个新的收集者都会触发数据流的生产者代码块,同时也会将新的回调加入到 FusedLocationProviderClient。 class LocationDataSource( private val locationClient: FusedLocationProviderClient ) { val locationsSource

    5.8K20编辑于 2022-03-09
  • 来自专栏程序员修炼之路

    避开这些坑!2025版Android性能优化面试的12个魔鬼细节

    电量黑洞:GPS定位优化方案 关键数据:持续GPS耗电280mA/h,网络定位130mA/h 避坑技巧:动态调整定位频率,使用FusedLocationProviderClient 大厂真题直击

    1.1K00编辑于 2025-02-19
  • 来自专栏Android 开发者

    使用更为安全的方式收集 Android UI 数据流

    例如下面的例子中,使用 callbackFlow 发送位置更新的数据流:‍ // 基于 Channel 实现的冷流,可以发送位置的更新 fun FusedLocationProviderClient.locationFlow

    1.3K30编辑于 2022-03-09
领券