Skip to content

1.x版本中navigateAction背压策略问题 #152

Description

@PropherTone

使用版本号:1.2.7
问题描述:
一下方法使用System.currentTimeMillis()记录NavTime,如果手机时间改到未来再改回来,那么到达未来的时间之前都是无法跳转的,建议改用SystemClock.elapsedRealtime()
var lastNavTime = 0L

/**

  • 防止短时间内多次快速跳转Fragment出现的bug
  • @param resId 跳转的action Id
  • @param bundle 传递的参数
  • @param interval 多少毫秒内不可重复点击 默认0.5秒
    */
    fun NavController.navigateAction(resId: Int, bundle: Bundle? = null, interval: Long = 500) {
    val currentTime = System.currentTimeMillis()
    if (currentTime >= lastNavTime + interval) {
    lastNavTime = currentTime
    try {
    navigate(resId, bundle)
    }catch (ignore:Exception){
    //防止出现 当 fragment 中 action 的 duration设置为 0 时,连续点击两个不同的跳转会导致如下崩溃 #issue53
    }
    }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug大佬们发现了一些bug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions