从web API服务获取数据时,屏幕旋转上的savedInstanceState不起作用的原因是因为savedInstanceState是用于保存Activity的状态数据的,当屏幕旋转时,Activity会被销毁并重新创建,而savedInstanceState会在Activity重新创建时被传递回来,以便恢复之前保存的状态数据。
然而,从web API服务获取数据时,并不会触发Activity的销毁和重新创建过程,因此savedInstanceState也不会被使用到。这是因为网络请求是在后台线程中进行的,而Activity的生命周期与主线程相关,屏幕旋转并不会导致Activity的销毁和重新创建。
为了解决这个问题,可以考虑使用其他方式来保存和恢复数据,例如使用ViewModel来保存数据,或者使用SharedPreferences或数据库来进行持久化存储。这样无论屏幕旋转与否,都能够正确地保存和恢复数据。
另外,需要注意的是,在进行网络请求时,应该避免在主线程中进行耗时操作,以免阻塞UI线程导致界面卡顿。可以使用异步任务、线程池或者使用第三方库如Retrofit来进行网络请求,以保证良好的用户体验。
推荐的腾讯云相关产品:腾讯云移动推送服务(https://cloud.tencent.com/product/tpns)可以用于实现消息推送功能,适用于各类移动应用场景。
领取专属 10元无门槛券
手把手带您无忧上云