基本上这里的想法是等到服务器发送访问令牌,否则资源正在加载旧的和应用程序粉碎。但是在getAccessToken()
异步请求中获取令牌并使用waitUntiAccessTokenIsObtained.release()
释放许可后,主线程仍然被阻止。 waitUntiAccessTokenIsObtained.acquire()
放置在MainActivity
的{{1}}方法中。我错过了什么?
onCreate
答案 0 :(得分:1)
永远不要等待主线程上的信号量。主线程不得因任何原因而延迟。这样做会使您的应用程序显示无响应(不会处理绘制命令),并最终启动一个会杀死您的应用程序的监视程序计时器。在您的数据可用之前,请设置加载屏幕。