我有些奇怪的行为。在三星S6上,我的应用程序崩溃时Looper异常,它说不能在线程中创建不调用looper.prepare()的处理程序。
这是好的,我理解,同样发生在LG,但最奇怪的是,我有华为p8 lite和谷歌Nexus 6,在那里,我没有得到那次崩溃。
通过谷歌,我找不到任何资源。
我只是简单地在那里做了个烤面包,这个品种真的让me.The感到困惑:为什么我会撞上三星和lg,而在华为和nexus上,我却没有?
发布于 2016-06-03 22:24:09
要正确回答这个问题,我们必须知道这些修改后的Android版本的实现细节。AFAIK正确的行为是,如果一个活套是从一个裸线程创建的,那么就应该抛出异常。
负责处理Nexus和华为的人在工作吗?您能够使用该处理程序发布和执行runnables吗?也许是默默地失败了。可能是内部调用Looper.prepare()?您可以使用Looper/Handler.dump()调试环/处理程序。见:https://developer.android.com/reference/android/os/Looper.html#dump(android.util.Printer和https://developer.android.com/reference/android/os/Handler.html#dump(android.util.Printer
您始终可以通过调用Looper.getMainLooper()获得主线程的活套。在你的情况下使用应该是安全的。
请参阅:https://developer.android.com/reference/android/os/Looper.html#getMainLooper()
https://stackoverflow.com/questions/37624223
复制相似问题