【发布时间】:2020-12-16 08:20:09
【问题描述】:
问题描述:
我有一个使用 Firebase 的应用程序(身份验证服务、firestore 和 firebase 存储、crashlititycs 等...)。在需要上网的功能中,例如用户登录时,我使用这种方法来判断是否有网络连接:
fun isNetworkAvailable(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetworkInfo = connectivityManager.activeNetworkInfo
return activeNetworkInfo != null && activeNetworkInfo.isConnected
}
在 Android Studio 中一切正常。但是,当使用真实设备的用户前往网络通常处于关闭状态且 GPS 信号强度较低的区域(例如在森林中)时,应用程序会一直冻结和崩溃,并出现各种异常情况。这个问题甚至发生在根本不需要互联网的活动中(比如拍照、浏览目录)。我怎样才能在 Android Studio 模拟器中重现这个?
到目前为止我所尝试的:
- 我尝试使用
-netdelay和-netspeed开关为模拟器设置高延迟(10-20s)和低速(1-2kB/s) 从控制台开始。 - 我尝试过使用模拟器的蜂窝选项。
以上方法都无法重现用户在森林或山区面临的冻结屏幕。如果没有调试能力,我无法找出冻结 UI 线程的原因。有什么想法我能做什么?
【问题讨论】:
标签: android user-interface networking cellular-network