我有一个 Android 项目,在其中我从服务器获取令牌进行身份验证,并将其用于对服务器的进一步查询。令牌大约在 10 分钟后过期,所以我必须获取一个新令牌。我现在的模式是这样的:
1-在用户首次启动应用程序时获取令牌
2-使用“请稍候”对话框阻止用户输入,这样他就不会尝试使用来自其他活动的空令牌发送查询
3-保存令牌和时间戳,停止阻止用户输入
4-定期检查onCreate()
活动方法中的时间戳
5-必要时更新。
我的问题是这个;如果用户打开一个活动并且令牌已过期,我的应用程序会再次阻止用户输入并尝试获取令牌。但是,在后台,应用程序的正常逻辑/流程继续,并尝试使用旧令牌或空令牌向服务器发送查询。
所以我想阻止这个查询任务 - 这AsyncTask
类似于令牌获取 - 并在令牌获取完成后启动它。我如何使用这种模式,这是一个正确的模式吗?
让一个线程等待另一个线程完成?