Hallo zusammen,
ich hätt´ da mal wieder ein Problem: Es erweitert im grunde einer meiner früheren Fragen, die ich zum Glück als gelöst betrachte. Es geht dabei um eine grundlegende Frage zur Struktur meiner App:
Ausgangssituation 1:
- Was will ich können: Ich parse aus meiner main-Activity mit einem DocumentBuilder aus javax.xml.parsers ein XML-Dokument. Ob ich dieses außerhalb der Activity noch brauche, weiß ich noch nicht ganz genau. Ich habe das Ganze jetzt außerdem in einen AsyncTask ausgelagert, der mir nach Ende des Parsens das Attribut setzt, also in Kurzform:
public class MyActivity extends Activity {
    private DocumentBuilderFactory docBuilderFac = DocumentBuilderFactory.newInstance();
    private DocumentBuilder documentBuilder;
    private Document doc;
    
    public class FileParseTask extends AsyncTask<String, Void, Document>{
   	 @Override
   	 protected void onPreExecute(){
   		 
   	 }
   	 @Override
   	 protected Document doInBackground(String... url) {
   		 // ...
   		 doc = documentBuilder.parse(url[0]);
   		 return doc;
   	 }
   	 
   	 @Override
   	 protected void onPostExecute(Document result){
   		 documentParsed();
   	 }
    }
    
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.main);
   	 
    	new FileParseTask().execute("http://192.168.0.99/myXML.xml");
   	 
   	 // ...
    }
    
    private void documentParsed(){
   	 // z.B. das UI updaten, ...
    }Frage 1:
Ist das so soweit erstmal sinnig, also insbesondere "doc" als Attribut anzulegen und dann direkt "aus der Activity heraus" zu parsen? Oder sollte man diese ganze Funktionalität irgendwie in einer weiteren Klasse "kapseln"?
Frage 2:
Gesetzt den Fall, ich würde dieses doc nun auch in anderen Activities verwenden wollen (und z.B. auch ändern wollen), wie übergebe ich es dann sinnvollerweise an andere Activities? Ich habe an dieser Stelle einiges über das Singleton-Entwurfsmuster gelesen, aber das wird ja gern auch als versteckte globale Variable verpönt. Also: Letzten Endes sind die Daten des docs gemäß einer Aufteilung in Model-View-Controller ja der Model-Schicht zuzuordnen, wie baue ich mir aber diese Model-Schicht sinnvollerweise am besten auf? Insbesondere könnte ja meine main-Activity nicht die einzige sein, die daran interessiert ist, ob z.B. das Parsen beendet ist?!
EDIT Frage 3:
Die letzte Frage ergänzend: Wieviel "Logik" was das Aufbauen irgendwelcher Verbindungen, das Parsen einer xml, ... angeht sollte denn die Activity überhaupt beinhalten?
Erneut leicht verwirrte Grüße,
FargoTof
 
		 
		
		
	
 Vllt ist mein Problem auch einfach, dass mir globale Variablen/Singletons immer ein Stück weit als Behelfslösung vorkamen, aber wenn a) es ein "common Java way" ist und b) der bei Stackoverflow genannte Weg über die Einbindung in den App-Context ja noch ein Stück "sauberer" erscheint, nehme ich das vllt einfach mal so hin
 Vllt ist mein Problem auch einfach, dass mir globale Variablen/Singletons immer ein Stück weit als Behelfslösung vorkamen, aber wenn a) es ein "common Java way" ist und b) der bei Stackoverflow genannte Weg über die Einbindung in den App-Context ja noch ein Stück "sauberer" erscheint, nehme ich das vllt einfach mal so hin 
