Mehrere Activities, ein HTTPClient

P

pyr0t0n

Neues Mitglied
3
Hallo Leute,

ich brauche mal euren Rat. Ich programmiere eine App für ein OnlinePortal, da man sich dort erst einloggen muss bevor man was nutzen kann, habe ich eine Activity auf der man Benutzername und Passwort eingibt und nach einem druck auf Login dann eingeloggt wird. Soweit so gut, ich initialisiere einen HTTPClient in der Activity und übergebe diesen mit an den AsyncTask welcher den eigentlichen Request für den Login übernimmt.

Nach dem Login möchte ich ja nicht weiter die Activity mit der LoginForm anzeigen sondern eine Übersicht über den Account.

Lasse also vom AsyncTask eine Methode in meiner Activity aufrufen, welche die weitere Activity startet. Doch wie bekomme ich nun meinen HTTPClient in die weitere Activity, damit mir die LoginSession nicht verloren geht?

Danke schonmal für eure Hilfe.
 
Du kannst sie im android.app.Application-Objekt abspeichern.
 
Hast du ne kurze Info wie ich das genau anstelle?
 
Du schreibst dir eine abgeleitete Klasse von Application,
baust da "get"ter und "set"ter rein,
meldest diese Klasse im Manifest als Application an.

Dann kannst du dir mit getApplication() die Application holen,
dann auf deine Klasse casten
und dann mit besagten getter/setter drauf zugreifen.

Also sowas in der Art (ungeprüft aus der Hüfte geschossen):
Code:
class MyApp extends Application {
  public void setHttpClient( HttpClient aClient ) { ... }
  public HttpClient getHttpClient() { ... }
}

... in der Activity ...
   MyApp myApp = (MyApp)getApplication();
 
Zuletzt bearbeitet:
Ach so ist es gemeint...

würde dann nicht theoretisch auch

Code:
public class HTTPClient extends DefaultHttpClient {
	private static HTTPClient instance = null;
	
	public static HTTPClient getInstance() {
		if(instance == null) {
			instance = new HTTPClient();
		}
		return instance;
	}
}

und dann in dem AsyncTask den HTTPClient via

Code:
HTTPClient client = HTTPClient.getInstance();

instanziert. Dann würde ich ja bei einer erneuten instanzierung auch die bereits erstelle zurückgeben !?
 
Ja, ginge auch. Nur das Singletons schlechter zu erweitern sind.
 

Ähnliche Themen

koje71
  • koje71
Antworten
0
Aufrufe
128
koje71
koje71
W
Antworten
1
Aufrufe
883
jogimuc
J
wernho
Antworten
11
Aufrufe
734
wernho
wernho
Zurück
Oben Unten