2011-05-13 2 views
0

Мне нужно вызвать метод getItem() внутри runnable. Но дело в том, что оно не работает. Оба журнала работают, но метод не выполняется.Метод вызова внутри Runnable не работает в android

this.viewItems = new Runnable() { 

     public void run() { 

      Log.i("getitem", "before"); 
      getItems(); 
      Log.i("getitem", "done"); 
     } 
    }; 

Это метод GetItems

private void getItems() { 
    try { 
     Log.i("url", url); 
     InputStream source = retrieveStream(this.url); 
     Log.i("inside getitem", "before object"); 
     Gson gson = new Gson(); 

     Reader reader = new InputStreamReader(source); 

     SearchResponse response = gson.fromJson(reader, SearchResponse.class); 

     Log.i("inside getitem", "after response"); 
     i_orders = new ArrayList<Items>(); 

     List<Offers> off = response.offers; 

     for (Offers of : off) { 

      Items item = new Items(); 

      item.setCovers(of.covers); 
      item.setCuisine(of.cuisine); 
      item.setDate_available(of.date_available); 
      item.setDistance(of.distance); 
      item.setEnd_time_available(of.end_time_available); 
      item.setLarge_image_url(of.large_image_url); 
      item.setLat(of.lat); 
      item.setLon(of.lon); 
      item.setMax_cover(of.max_cover); 
      item.setMin_cover(of.min_cover); 
      item.setOffer_description(of.offer_description); 
      item.setOffer_id(of.offer_id); 
      item.setPrice_range(of.price_range); 
      item.setRestaurant_name(of.restaurant_name); 
      item.setRestaurant_profile(of.restaurant_profile); 
      item.setRestaurant_suburb(of.restaurant_suburb); 
      item.setSmall_image_url(of.small_image_url); 
      item.setStart_time_available(of.start_time_available); 
      item.setTables_available(of.tables_available); 
      item.setTime_available(of.time_available); 


      i_orders.add(item); 

     } 

     Thread.sleep(1000); 
     Log.i("ARRAY", "" + i_orders.size()); 
    } catch (Exception e) { 
     Log.e("BACKGROUND_PROC", e.getMessage()); 
    } 
    runOnUiThread(returnRes); 
} 

я не получаю даже журнальное сообщение в верхней части.

Спасибо заранее!

+0

Не могли бы вы отправить код метода? –

+0

Я отредактировал вопрос. Проверьте метод. – Chrishan

ответ

0

Я понял, что существует исключение внутри метода getItems из-за не отформатированного URL.

0

Существует неявное «это». перед getItems(), но где вы звоните из «этого» - это совсем другое (на самом деле Runnable).

Вы должны, вероятно, быть в состоянии сделать что-то вроде:

частного контекста myContext;

...

myContext = this;

this.viewItems = новый Runnable ....

myContext.getItems();

...

Но так или иначе, вы должны иметь какой-то переменной, которая является ссылкой на «это» в внешней области, которые могут быть использованы для обозначения к нему с внутренней рамки.

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