小程序
小游戏
企业微信
微信支付
扫描小程序码分享
加速度计API中的wx.stopAccelerometer() 只是停止监听加速度数据,并没有销毁监听事件,
当退出当前页,再次进入页面时(没有什么判断是否有加速度计监听事件是否存在的方法,或者我不知道吧),页面会再次注册一个监听事件,加上之前的就有两次,那么悲剧了,多次就如就会有很多次的监听事件,晃一下手机就向后台请求多次数据。
这个问题有人遇到吗?怎么解决?
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
首先设置一个变量,比如说时shake,为false,事件触发之后设为true,如果为true,return false。
只有当shake为false时继续,
事件处理完成时shake重新设为false
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
谁能告诉一下这个问题具体怎么解决的,和楼主的问题一模一样,退出页面再进入会注册多个监听事件,stop的话会停止所有的监听,start的话会开启所有的监听。
if
(isFirst) {
isFirst =
false
wx.onAccelerometerChange(onChange)
}
else
{
wx.startAccelerometer()
可算解决了,调了6个小时
确实是个坑,在这花了很多冤枉的时间,主要是一开始不知道这个,debug了很久、很久。
事件触发的时候判断shake是否为true,如果是true,return false,不是设置shake为true
我也遇到了 请问你是怎么解决的
目前的解决方法时在后续执行的函数中设置变量做判断,如果不符合就return false,但是还是希望有一个真的时销毁监听事件的方法。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
首先设置一个变量,比如说时shake,为false,事件触发之后设为true,如果为true,return false。
只有当shake为false时继续,
事件处理完成时shake重新设为false
谁能告诉一下这个问题具体怎么解决的,和楼主的问题一模一样,退出页面再进入会注册多个监听事件,stop的话会停止所有的监听,start的话会开启所有的监听。
if
(isFirst) {
isFirst =
false
wx.onAccelerometerChange(onChange)
}
else
{
wx.startAccelerometer()
}
可算解决了,调了6个小时
确实是个坑,在这花了很多冤枉的时间,主要是一开始不知道这个,debug了很久、很久。
事件触发的时候判断shake是否为true,如果是true,return false,不是设置shake为true
我也遇到了 请问你是怎么解决的
目前的解决方法时在后续执行的函数中设置变量做判断,如果不符合就return false,但是还是希望有一个真的时销毁监听事件的方法。