我有一个被称为“类A”类 一个)我有一个称为验证 b按钮)的验证我打电话auth.authenticate(),其在真返回布尔 c)中的onClick - 我必须调用的意图在多线程异步
的authenticate函数在另一个类(AUTH是REF)
身份验证函数为()
布尔身份验证(){
new AsyncTask<String, String, String>() { preExecute() { --starting a progress bar-- } doInBackground(String) { ---- huge authentication code----- ------ returns true or false -------isVerified } onPostExecute(String) { --- dismiss progress bar----------- } }.execute(); } --------end of AsynTask block---- synchronized (this) { try { this.wait(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } return isVerified; ---- this should return to MyClass - after async finishes
- 但异步完成前,这是返回..实际上它是正确的 - 因为这些都是thread--平行,所以,使其工作 - 我已经等待异步完成使用该同步块 - 但这将阻止我的主线程 - (也没有进度条)
我可以打电话给我的下一个活动后执行成功 - 作为即时制作图书馆类..我认为不应该...请帮助
}
但CHIS,同时“返回isVerified“将运行,而不管onPostExecute返回.. –
从doInBackground()返回的值被传递给onPostExecute(),这不会被其他代码直接看到。请参阅AsyncTask的文档。 – ScouseChris