【问题标题】:Operation inside thread freezes UI on Android线程内的操作会冻结 Android 上的 UI
【发布时间】:2016-04-22 23:07:06
【问题描述】:

我在我的 Android 应用中使用了第 3 方 SDK。必须调用 SDK 上的初始化方法,该方法将应用程序上下文作为参数,如下所示:sdk.initialize(getApplicationContext())。现在这在普通设备上可以正常工作,但是它会冻结有根设备上的 UI。 SDK 供应商表示这是设计使然,因为他们希望阻止软件在有根设备上运行。作为回应,我现在在一个线程中运行该方法。我尝试过传统的线程和 AsyncTasks,但 UI 仍然冻结。这怎么可能? SDK 可以使用应用上下文来阻塞 UI 吗?

【问题讨论】:

    标签: android multithreading user-interface freeze


    【解决方案1】:

    简单 - SDK 使用 runOnUIThread 来检查设备是否已植根(比方说 - 它试图列出需要 root 权限的目录中的文件),这就是使植根设备变得无响应的原因。在有根设备上 - 这可能需要一些时间(可能他们故意不止一次这样做,以使其无法在有根设备上运行)。

    在普通设备上 - 运行此代码时可能会引发安全异常(因为应用程序没有 root 权限),这就是 SDK 知道设备未 root 的方式。

    【讨论】:

    • 谢谢,听起来你好像在做某事。将与供应商核实。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2021-12-21
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2020-01-05
    相关资源
    最近更新 更多