Threading-Beispiel in Android [geschlossen]


74

Ich möchte ein einfaches Beispiel für die Thread-Erstellung und das Aufrufen von Threads in Android.


Sie können auch auf diesen Beitrag verweisen: stackoverflow.com/questions/9148899/returning-value-from-thread
— Ravindra babu

Antworten:


88

8
Die ersten beiden Links funktionieren nicht. Für den ersten Link versuchen Sie Link Für den zweiten Link versuchen Sie Link
— Dexter

5
Die Antwort ist fast 1,5 Jahre alt. Ich versuche die Links zu aktualisieren.
— RoflcoptrException

Sie sind wirklich nett, eine unspezifische Frage wie diese beantwortet zu haben
— Eine Person

Ich würde nicht zustimmen, dass es sich um eine unspezifische Frage handelt: Sie fragt die Community nach einem ganz bestimmten Beispiel mit einem ganz bestimmten Fokus.
— WillC

10

Eine der leistungsstarken Funktionen von Androids ist die AsyncTask- Klasse.

Um damit zu arbeiten, müssen Sie es zuerst erweitern und überschreiben doInBackground(...). doInBackgroundautomatisch ein Arbeiter - Thread ausgeführt wird , und Sie können einige Zuhörer auf dem UI - Thread hinzufügen , um Status - Update , um informiert zu werden diese Funktionen aufgerufen: onPreExecute(), onPostExecute()undonProgressUpdate()

Ein Beispiel finden Sie hier .

Weitere Alternativen finden Sie im folgenden Beitrag:

Handler vs AsyncTask vs Thread


Ich bin mir ziemlich sicher, dass dein Link tot ist.
— While-E

@ While-E Ich fürchte, Sie haben Recht
— Endian Ogino

2
Ich habe gerade den Link aktualisiert. Der Blog ist an diesen neuen Ort
— umgezogen

8

Hier ist ein einfaches Threading-Beispiel für Android. Es ist sehr einfach, aber es sollte Ihnen helfen, eine Perspektive zu bekommen.

Android-Code - Main.java

package test12.tt;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Test12Activity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final TextView txt1 = (TextView) findViewById(R.id.sm);

        new Thread(new Runnable() { 
            public void run(){        
            txt1.setText("Thread!!");
            }
        }).start();

    }    
}

Android-Anwendung xml - main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView  
    android:id = "@+id/sm"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"/>

</LinearLayout>

49
Dies scheint mir ein falsches Beispiel zu sein, da ein UI-Update über einen Hintergrund-Thread durchgeführt wird.
— Frank Harper

1
Wenn Sie den UI-Thread aktualisieren, sollten Sie den Handler verwenden, da dies die mittlere Ebene zwischen dem UI-Thread und Ihrem Spawn-Thread ist. Auf diese Weise bleiben Sie vor Dead Locking
— geschützt

2
developer.android.com/guide/components/… rät genau von dieser Art der Programmierung ab, da sie gegen die Regel "Nicht von außerhalb des UI-Threads auf das Android-UI-Toolkit zugreifen" verstößt
— Serkan Arıkuşu

1
Ich bin mir ziemlich sicher, dass es in neueren Versionen von Android manchmal nicht einmal so funktioniert.
— Giszmo

1
Es verstößt gegen die zweite Regel des Single-Thread-Modells:
— Greifen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.