Some changes in Java code chapter 6.
authorgumartinm <gustavo@gumartinm.name>
Sun, 18 Nov 2012 21:12:55 +0000 (22:12 +0100)
committergumartinm <gustavo@gumartinm.name>
Sun, 18 Nov 2012 21:12:55 +0000 (22:12 +0100)
capitulo6/capitulo6.tex
source/JavaHTTPJSONtreatment.java
source/JavaUpdateLocation.java

index c5c91a3..6d64a78 100644 (file)
@@ -26,7 +26,7 @@ Posteriormente se lanza la petición al servidor Web en el hilo creado mediante
 \lstset{language=Java, basicstyle=\small, breaklines=true, float=[P], floatplacement={P}, frame=single, captionpos=b, caption={Código para la recepción de datos desde el servidor Web}, label={list:JavaHTTPGetHandler}}
 \lstinputlisting{source/JavaHTTPGetHandler.java}
 
-El StringBuilder contiene la respuesta JSON devuelta por el servidor Web. En el Listado~\ref{list:JavaHTTPJSONtreatment}) se muestra como el StringBuilder es transformado a un Array de objetos JSON (el servicio Web responde con una secuencia donde cada objeto JSON contiene los datos de un anuncio) El método updatedIndexer actualizará tal y como su nombre indica la base de datos con la información sobre el nuevo anuncio y si todo va bien mediante otra conexión HTTP realizada por el método downloadAds la aplicación Android descargará la imagen que está asociada con un anuncio. En caso de que el anuncio ya estuviera descargado, se encontraría en la base de datos y updatedIndexer devolvería null y por tanto no se descargaría nada ni se actualizaría la base de datos con información que ya existía previamente.
+El StringBuilder contiene la respuesta JSON devuelta por el servidor Web. En el Listado~\ref{list:JavaHTTPJSONtreatment}) se muestra como el StringBuilder es transformado a un Array de objetos JSON (el servicio Web responde con una secuencia donde cada objeto JSON contiene los datos de un anuncio) El método updatedIndexer actualizará tal y como su nombre indica la base de datos con la información sobre el nuevo anuncio y si todo va bien mediante otra conexión HTTP realizada por el método downloadImage la aplicación Android descargará la imagen que está asociada con un anuncio. En caso de que el anuncio ya estuviera descargado, se encontraría en la base de datos y updatedIndexer devolvería null y por tanto no se descargaría nada ni se actualizaría la base de datos con información que ya existía previamente.
 
 En el Listado~\ref{list:JavaHTTPJSONtreatment}) se observa también la existencia del método sendBroadcast. Habíamos mencionado previamente que la tarea de descarga de anuncios se ejecutaba en segundo plano por parte de un Servicio Android multihilo. Necesitamos un mecanismo para por un lado actualizar la interfaz del usuario mostrando los nuevos anuncios recibidos y por otro generar una notificación en la barra de tareas del dispositivo Android. Para llevar a cabo estos requerimientos se hace uso de un BroadCastReceiver proporcionado por la API Android que notificará a las Activities que escuchen dicho broadcast sobre la necesidad de actualizar los datos que están mostrando al usuario.
 
index 3b4f47c..e796c74 100644 (file)
@@ -5,7 +5,7 @@ for (int i = 0; i < (finalResult.length() -1); i++) {
     JSONObject objects = finalResult.getJSONObject(i);
     if ((uriInsert = updatedIndexer(objects)) != null) {
         try {
-            downloadAds((String)objects.get("image"), (String) objects.get("id"));
+            downloadImage((String)objects.get("image"), (String) objects.get("id"));
             Intent updateList = new Intent("de.android.mobiads.MOBIADSLISTRECEIVER");
             context.sendBroadcast(updateList);
             updateNotification();
index 8af5086..5595b76 100644 (file)
@@ -1,6 +1,6 @@
 public void makeUseOfNewLocation(Location loc) {
-    final String latitude = Double.toString(loc.getLatitude());
-    final String longitude = Double.toString(loc.getLongitude());
+    final String latitude = String.valueOf(location.getLatitude());
+    final String longitude = String.valueOf(location.getLongitude());
     final String URLAuth = urlServer + latitude + "/" + longitude + "/gpsads.json";
     URL url = new URL(URLAuth);
     this.exec.execute(new Batch(url));