ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Acceso de objetos hijos de la clase android.view a través de hilos secundarios


Enviado por   •  25 de Agosto de 2015  •  Ensayos  •  2.063 Palabras (9 Páginas)  •  109 Visitas

Página 1 de 9

  1. Tema de la lección:

Acceso de objetos hijos de la clase android.view a través de hilos secundarios

  1. Supuesto original, antes de que se tuviera esta experiencia:

Es posible acceder y modificar objetos visuales de una actividad desde un hilo de proceso secundario

  1. La nueva interpretación o supuesto:

Los objetos visibles en android (objetos hijos de la clase android.view) solo son accesibles desde el hilo que los creo, es decir, desde el hilo principal. Si se intenta modificar estos objetos desde un hilo secundario la aplicación dará error y se cerrará automáticamente. Para resolver esto, y lograr realizar modificaciones a objetos visuales desde hilos secundarios, es necesario hacer uso del objeto android.os.Handler el cual puede recibir mensajes desde hilos secundarios y ejecutar instrucciones en el hilo principal.

  1. 1 ó 2 ejemplos que confirman el nuevo supuesto:

Para demostrar como se debe acceder un recurso visual desde un hilo secundario, se mostrará a continuación un código que intentará mostrar un contador que se incrementa desde un hilo secundario y se visualizará en un textView creado por la actividad principal

Archivo MainActivity:

package com.example.ejemplohilo;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

public class MainActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        final TextView tv=(TextView) findViewById(R.id.contadorViewer);

        new Thread(new Runnable(){

                        @Override

                        public void run() {

                                // TODO Auto-generated method stub

                                int counter=0;

                                while(true){

                                        tv.setText(""+counter++);

                                        

                                        try {

                                                Thread.sleep(1000);

                                        } catch (InterruptedException e) {

                                                // TODO Auto-generated catch block

                                                e.printStackTrace();

                                        }

                                        

                                }

                        }

                

        }).start();

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.activity_main, menu);

        return true;

    }

   

}

Archivo XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity" >

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="" 

        android:id="@+id/contadorViewer"/>

RelativeLayout>

Al ejecutar este codigo se puede verificar que la aplicacion es cerrada por el administrador de tareas de android

[pic 2]

EN el DDMS se puede verificar que el sistema arroja un error indicando que “Solo el hilo que originalmente creó una jerarquía de elementos Views, puede tocar esos views”

...

Descargar como (para miembros actualizados)  txt (6.4 Kb)   pdf (454 Kb)   docx (700.7 Kb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com