2016-11-18 1 views
0

ist es möglich, ein Thread-Objekt an eine neue Aktivität übergeben mit Absicht einige Verarbeitung und dann den Thread an die Hauptaktivität zurückgeben?Wie Thread-Objekt an neue Aktivität übergeben und es wieder an der und

Danke für Ihre Hilfe.

+0

Antwort sortieren ... Nein. Verwenden Sie einen Dienst, genauer gesagt einen IntentService/BroadcastReceiver, der einen Arbeitsthread verwendet, oder eine AsyncTask .. oder RxJava .. –

+0

Hallo, ich bin ziemlich neu in Android, aber 30 Jahre Programmierung in vielen Sprache. – hterrolle

+0

und ich weiß nicht sehr gut, wie stakoverflow :)) noch zu verwenden. Also entschuldige ich mich für falsches Posting. Wenn ich sagte, dass das Übergeben eines Threads ein Mittel ist, um die Instanz der Klasse zu übergeben, wie erweitert sich der Thread. Es ist möglich, diese Klasse durch Bezugnahme auf die Aktivität zu übergeben? – hterrolle

Antwort

0

Es ist im Gegensatz zu dem Konzept der Android-Aktivität Parameter übergeben. Besser, das nicht zu tun. Verwenden Sie Services oder erstellen Sie eine Standalone-Klasse mit Thread oder AsyncTask und interagieren Sie mit ihr, aber übergeben Sie kein Thread-Objekt an die Aktivität.

+1

Es ist erwähnenswert, dass die Verwendung eines Dienstes allein dazu führt, dass Aufgaben weiterhin auf dem Haupt-UI-Thread ausgeführt werden - "IntentService" erstellt einen automatischen Arbeitsthread. –

+0

Zeit, um die Dokumentation zu lesen. Wenn ich also einen Dienst innerhalb der Hauptaktivität und einen anderen in der anderen Aktivität verwende, könnte ich eine Nachricht an die Hauptaktivität senden, um die Methode, die ich brauche, auszuführen. – hterrolle

+0

In der Tat ist die Verwendung von Service mehr wie die Verwendung von IPC unter Unix? wenn wir bedenken, dass jede neue Aktivität ein Prozess ist? – hterrolle

0

Stattdessen können Sie einen Listener für die Verarbeitung erstellen. Wenn die Verarbeitung abgeschlossen ist, senden Sie die Antwort an den Listener (implementiert von Ihrer Hauptaktivität). Sie können dies mit einer AsyncTask (onPostExecute) tun

0

Es ist möglich. Aber es ist nicht gut, noch effektiv. Wie von @Andriy Omelchenko erwähnt, verwenden Sie Thread (wenn Sie Thread selbst verwalten können, um mit Ihrer Aktivität zu interagieren) oder AsyncTask (die speziell für die Interaktion mit der Benutzeroberfläche entwickelt wurde.) Siehe Abschnitt this für das Verständnis von Threading.

0

I Tatsache Acticity ist nur gut, wenn Sie Daten nicht Klassenreferenz übergeben müssen?

Das Beste ist also, die Informationen und Aktionen aus der Kinderaktivität zu bekommen und eine Klasse für jedes Training innerhalb der Hauptaktivität zu erstellen. So kann ich tun, was ich will und ich brauche. Wenn alles innerhalb der Kinderaktivität stattfinden kann. Wir können Arbeit nicht mit Aktivität teilen. Es startet und stoppt keine Prozesskommunikation unter der Instanzenfreigabe.

Ist das korrekt?

0

Ich denke, Sie können den Beitrag entfernen, da ich herausgefunden habe, dass die Frage wirklich schlecht gefragt wurde.

Ich fand eine sehr einfache Lösung, um zu verwalten, was ich tun wollte, ohne Thread durch Aktivität zu führen. Tatsache, ich war überhaupt nicht notwendig.

Entschuldigung für die Störung. Ich bin noch nicht mit Android vertraut.

Ich benutze einen Empfänger, um Absicht von anderen Aktivitäten zu erhalten, sehr einfach, um die Arbeit innerhalb der Haupttätigkeit zu erledigen.

grüße und sorry wieder.

Verwandte Themen