【发布时间】:2011-07-21 03:51:26
【问题描述】:
亚马逊如何知道我的 Android 应用的某些信息?
例如,他们能够确定它阻止了 UI 并因此拒绝了它。他们是如何确定它被阻塞的,是否有软件可供我检查?我问是因为我有一个相当大的应用程序并且想查明发生这种情况的位置,因为我认为在调用 UI 更改时我很小心。
亚马逊说... 您的应用程序尝试在后台线程上调用 Android Activity 生命周期方法。 Amazon DRM 不允许开发人员在后台线程上调用 Android 活动生命周期方法。有关进程和线程的更多信息,请访问:http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html。此外,Android UI 工具包不是线程安全的。因此,您不能从工作线程操作您的 UI — 您必须从 UI 线程对您的用户界面进行所有操作。 Android 的单线程模型有两条规则: * 不要阻塞 UI 线程。 * 不要从 UI 线程外部访问 Android UI 工具包。
【问题讨论】:
-
这个问题引起了很多猜测,它不适合 Stack Overflow。
-
其实我相信你误读了投诉。问题似乎不是您阻塞了 UI 线程(尽管他们在最后提到这也是被禁止的),而是您尝试从后台使用仅 UI 线程的方法,而不将其包装在 runOnUiThread 或类似中。由于 Amazon 发布了他们自己的 Android 版本,他们可能会在生产构建中或在他们运行应用程序的特殊构建中检测到这一点,以便在部署之前进行验证。大多数谷歌风格的 Android 设备也会导致应用崩溃。
标签: java android multithreading amazon amazon-appstore