2012-05-02 2 views
0

это мой AsyncTask класс ....................не выполняют ничего, когда вызов выполнить

public class UpdatingNews extends AsyncTask<String, Void, String> { 
    private Database_WebService webservice; 
    private Context mContext; 

    public UpdatingNews(Context context){ 
     this.mContext = context; 

    } 

    @Override 
    protected String doInBackground(String... params) { 
     webservice = new Database_WebService(mContext); 
     webservice.updateallCatNews(); 
     webservice.UpdateAllNews(); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     startActivity(new Intent(Main_Launcher.this, 
       Main_FormNewUser.class)); 
     finish(); 
    } 
} 

Когда я называю это ...... ............

update = new UpdatingNews(this); 
    check = webservice.CheckSurveySubmit(); 
    int secondsDelayed = 3; 
    new Handler().postDelayed(new Runnable() { 
     public void run() { 
      if (check == 0) { 
       update.execute("..."); 



      } 
      if (check == 1) { 
       startActivity(new Intent(Main_Launcher.this, 
         Main_AllLatestNews.class)); 
       finish(); 
      } 
     } 
    }, secondsDelayed * 1000); 

Не выполнено ........................... ...

webservice.updateallCatNews(); 
     webservice.UpdateAllNews(); 

В чем проблема? ??????????????????????????????

+0

Что такое 'Database_WebService'? – xandy

+0

Database_WebService содержит те функции, которые имеют дело с базой данных sqlite. –

+0

Если вы не публикуете все исходные коды здесь (включая веб-сервис, активность и т. Д.), Невозможно узнать, что с ним не так. – xandy

ответ

0

Ваш UpdatingNews является AsyncTask. В вашем запуске() вы запустили задачу, но затем сразу же запустили другое действие, не закончив задачу. Скорее всего, андроид переместится на Main_FormNewUser Активность, но задача все еще работает в фоновом режиме. Итак, очень вероятно, что ваш второй прогон фактически имеет результаты первого запуска.

Если вам нужна следующая активность появляется После вы захватить новости, вы должны переместить startActivity заявление onPostExecute() в AsyncTask.

+0

Я имею в виду первый запуск (alt + f11), ничего не выполнять, затем выйти и запустить второй прогон (alt + f12), выполнить. Я пробовал раньше, начинаю работу в 'onPostExecute()' –

+0

. Что вы разместили здесь, трудно определить, почему он не работает. Не знаю, как вы выполняете обновление и как вы его оцениваете, он не выполняет. Действительно ли вызвало обновление UpdateNews? – xandy

+0

Я обновил сообщение, пожалуйста, посмотрите еще раз @xandy –

0

После просмотра кода, я считаю, что xandy является правильным. Main_FormNewUser Действие выполняется параллельно с задачей Async.

+0

Я обновил сообщение, пожалуйста, посмотрите еще раз @Aniket Rane –

Смежные вопросы