[Java/Android] Van klasse returnen naar "Main.java"

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Workerbee
  • Registratie: Juni 2009
  • Laatst online: 13-05 17:12
Mijn klasse ClientHandler extend de android Handler klasse.
Hierdoor is het niet mogelijk om gelijk berichten te returnen naar de klasse die gebruikt maakt van de ClientHandler. Graag zou ik dit wel willen.

Heb het nu zo:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ClientHandler extends Handler { 
//Allemaal code
//Tot de applicatie op gegeven moments tegen iets aanloopt als dit.
//Als de status niet OK is wil ik die graag returnen met de foutmelding naar waar de ClientHandler instatie is.
 if (Status.OK != status) {
                    sendUserError(status);
                }

}

    private Status sendUserError(Status status)
    { 
        return status;
    }

//Dit werkt natuurlijk niet..
}


Mijn vraag, hoe krijg ik dit werkend en hoe pak ik zoeits aan?

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 06-06 17:26
Wanneer je niet van een statische klasse gebruik maakt kun je in de constructor natuurlijk de opdrachtgevende klasse meesturen. Je krijgt dan als constructor gewoon:
Java:
1
public ClientHandler(Object s) { ... }

Het beste pak je natuurlijk geen Object, maar een abstracte klasse waarin je een methode hebt gezet welke altijd aangeroepen kan worden. Bijvoorbeeld sendError(Status status). Dan kun je die methode in afgeleide klassen hiervan gewoon aanroepen en afhandelen :).

Acties:
  • 0 Henk 'm!

  • Workerbee
  • Registratie: Juni 2009
  • Laatst online: 13-05 17:12
Natuurlijk! Haha wat cool.
Dankjewel heb het werkend.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Is dit niet typisch iets waar je een Exception voor zou opgooien? Je loopt tegen een probleem aan waar je niks meer mee kan, dus moet je je huidige routine afbreken. Elke routine die niet weet hoe ie met jouw fout moet omgaan moet ook stoppen, net zo lang tot er ergens een laag is die er wel wat mee kan. En die laag geeft dan in jouw voorbeeld de foutmelding op het scherm.

Als het heel gebruikelijk is dat die status niet 'ok' is, dan zou je daar bij voorkeur geen Exception voor moeten gebruiken, dan moet het onderdeel van je gewone programmacode worden. En dan blijft je originele vraag natuurlijk staan :)

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 06-06 17:26
Een Exception zou inderdaad ook kunnen. Echter wordt de klasse Handler in Android gebruikt om berichten door te sturen tussen verschillende klassen. Daarmee kan het een hele handige en prettige klasse zijn, maar je moet het dan inderdaad op de juiste manier gebruiken.

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Zou een Observer / Observable pattern niet beter zijn, waarbij objecten die geïnteresseerd zijn in de berichten zich kunnen (laten) registreren bij de Handler, dan stuurt de Handler gewoon zijn events naar alle geïnteresserden..
Pagina: 1