Archief - java android

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

J3rry

Legacy Member
ben al enkele maanden bezig met java (android)


ik ben bezig met een app die gebruik maakt van een socket
tot hiertoe geen probleem, het is mij al gelukt een kleine app te maken voor de instellingen
via http post van mijn router te veranderen via een simpele druk op de knop

maar ik zit al een tijdje met een probleem dat het updaten van de UI Thread onmogelijk maakt
ik heb al geprobeerd met handlers, service, runnables enz...
ofwel loopt mijn UI vertraging op door het wachten tot een actie voltooid is over een socket
ofwel crash mijn app omdat het niet mogelijk is via een handler bijvoorbeeld een simpele Toast melding of alert dialog te tonen

mijn beste gok is deze openbron app:
androidchat

deze app is een irc client, maakt gebruik van socket die openblijft tot de user of server disconnect
maar ondertussen update hij wel de UI Thread
het is zoveel code dat ik niet goed kan zien of snap hoe deze app dit doet eigenlijk

in ThreadConnThread.java maakt hij effectief verbinding met de server (implements runnable)
en de output van de socket komt uitendelijk in de UI Thread via ActivityChatChannel.java
maar hoe daar ben ik nog niet volledig uitgeraakt

iedere keer als ik een handler gebruik en iets wil updaten in de UI Thread kom ik serieuze compiler erros tegen die mij iedere keer zeggen dat ik niets mag updaten via een handler
toch maakt die app gebruik van een handler

SharkyXTS

Legacy Member
Om zaken op je UI thread uit te voeren kan je simpelweg gebruik maken van:

Code:
Handler uiHandler = new Handler( Looper.getMainLooper() );
uiHandler.post( new Runnable() {
  @Override
  public void run() {
    // Update view.
  }
});

De voorbeeldcode heb ik niet in detail bekeken, ik ben gestopt toen ik public static variabelen zag :p.

J3rry

Legacy Member
bedankt, maar ik heb het intussen opgelost met een broadcastreceiver
via handler blijft de UI alsnog haperen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan