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.