我的APP(假定为A)进度条,一般是没有问题的,但是,进度条出现那一瞬间,然后用户切换到其他app(假定为B),这时候,A查到数据了,执行取消进度条了(测试发现,取消进度条的代码走到了,但实际不会有效果,因为A不是当前用户正在使用的APP),进度条实际依然还在。 这时候用户从B切换回A时,就还是看到一个进度条,永不消失,这个局怎么破?
这个问题可能是由于线程问题导致的。当用户切换到其他app时,进度条所在的线程可能会被挂起,而取消进度条的代码可能是在另一个线程中执行的。因此,即使取消进度条的代码被执行了,但进度条仍然存在,因为它所在的线程并没有被正常地中止。
解决这个问题的一种方法是使用线程同步机制,例如使用锁或信号量来确保在进度条被取消之前,线程不会被挂起。另外,您还可以尝试使用异步操作来执行与后台的交互,以避免在主线程中执行耗时的操作,从而保持用户界面的响应性。
最后,为了确保进度条的正常显示和取消,建议在编写代码时要充分考虑用户在使用应用程序时的各种情况,包括用户切换到其他app、应用程序进入后台等情况,并在代码中做好相应的处理。
进度保存起来,页面重新显示(一般是onStart)的时候,根据数据刷新页面
解决方案:在A的AppDelegate中添加监听,当用户从B切换回A时,就可以在监听中检测到,然后在监听的回调中取消进度条。
可以在切回前台时,进行二次判断,使用判断结果对进度条调整。