я написал код, как показано нижеКак синхронизировать операторы в AsyncTask doInBackground() метод в Android
общественного класса SplashScreen расширяет BaseActivity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
new DownloadPlistTask().execute("background","Progress","yes");
}
private class DownloadPlistTask extends AsyncTask<String,String,String>{
protected String doInBackground(String... dummy){
return compareLocRemPlist();
}
protected void onProgressUpdate(String... progress){
//some code here.
}
protected void onPostExecute(String result){
//handle return type from doInBackground.
}
public String compareData(){
final Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
//code regarding webservices.
if(boolValue){
//if the boolValue from the webservice is true,cancel the timer.
timer.cancel();
}
},5*60*1000,5*60*1000);
return "finish";
}
}
}
В приведенном выше коде от OnCreate() IAM вызов AsyncTask doInBackground в doInBackground iam, вызывающий метод с именем compareData(). В методе compareData() iam с использованием таймера. Таймер отправляет запрос для веб-службы, в веб-службе iam получается логическое значение, если это правда, мне нужно return finish.If это false, я не хочу возвращать финиш, я должен оставаться в методе compareData(), и для каждого fi В течение нескольких минут он должен отправить запрос, пока я не получу истинное значение. Но когда таймер ждет пять минут, в течение этого времени выходят инструкции после таймера, а возвращаемое значение заканчивается на doInBackground, и элемент управления собирается onPostExecute(), но в фоновом режиме таймер работает. Как можно вернуться, когда я отменяю таймер
Спасибо большое, я попробую и дам вам знать – user1195614
да, он отлично работает, еще раз большое спасибо – user1195614