wie man runOnUiThread benutzt, ohne "Compilerfehler" kann nicht einen statischen Verweis auf die nicht statische Methode "

8

Ich habe eine Hauptklasse;

%Vor%

und ein Service

%Vor%

Beim Versuch, RunOnUiThread in der run-Methode dieses Dienstes zu verwenden, erhalte ich den Compilerfehler "kann keine statische Referenz auf die nicht statische Methode erstellen"

wie das zu beheben?, wie ich den Code verwende, wird hier gezeigt;

%Vor%     
Kevik 21.02.2013, 07:15
quelle

4 Antworten

14

runOnUiThread ist keine statische Methode.

Wenn Sie Ihren Lauf auf UIThread ausführen möchten, können Sie dies verwenden

Handler-Handler = neuer Handler (Looper.getMainLooper ());

Dies erstellt einen Handler für UI-Thread.

%Vor%

Jetzt können Sie das überall verwenden.

%Vor%     
Vivek Khandelwal 21.02.2013, 07:37
quelle
13

Es gibt eine sehr einfache Lösung für das obige Problem Machen Sie einfach eine statische Referenz Ihrer Aktivität vor Ihrer onCreat() -Methode

%Vor%

initialisiere es dann in deiner onCreat() methode wie dieser

%Vor%

und danach musst du es nur benutzen, um dein runOnUiThread

aufzurufen %Vor%

hoffe es funktioniert.

    
Syeda Zunairah 05.06.2015 09:59
quelle
5

Sie können die Instanz Ihrer Aktivität abrufen, sie an den Service übergeben und diese anstelle des Klassennamens verwenden.

kannst du dann verwenden:

%Vor%     
Alex Gittemeier 21.02.2013 07:27
quelle
0

Im Allgemeinen verwenden wir diese Methode (RunOnUiThread), wenn wir versuchen, unsere Benutzeroberfläche von einem funktionierenden Thread zu aktualisieren. Aber da Sie Service hier verwenden, scheint runOnMainThread für Ihre Situation ungeeignet zu sein.

Hier sollten Sie besser Handler verwenden. Handler ist ein Element, das dem Thread zugeordnet ist, an dem erstellt wird. Sie können einen Runnable mit Ihrem Code an den Handler senden, und dieser Runnable wird in dem Thread ausgeführt, in dem der Handler erstellt wurde.

  

Erstellen Sie einen Handler für Ihren Service in seinem MainThread und veröffentlichen Sie Runnables auf   es / Nachrichten an es senden.

    
Bhavesh Patadiya 21.02.2013 07:27
quelle

Tags und Links