S
smileyep1
Neues Mitglied
- 0
Hi - ich hab ein Problem mit meinem Code und zwar ist er unfassbar langsam
Habe das ganze erst in JAVA mit komandozeilenausgabe geschrieben und es dann später in ein Android Projekt eingebaut.
Es wird im grunde genommen nur die Seite eingelesen und ein bissle mit Regex gearbeitet um ein paar fetzen aus der Seite zu holen.
Funktioniert am PC auch wunderbar - doch sobald ich das ganze mit dem Android Emulator ausführe dauert es über 5 min bis ich meine Ausgabe auf dem Bildschirm habe.
Auf meinem Handy verabschiedet sich das Programm nach etlichen minuten per Fehlermeldung.
Hier mal der Code - wüsste gerne wie man die geschichte beschleunigen kann.
Die Ursache des ganzen liegt bei
Hier der gesamte code
Habe das ganze erst in JAVA mit komandozeilenausgabe geschrieben und es dann später in ein Android Projekt eingebaut.
Es wird im grunde genommen nur die Seite eingelesen und ein bissle mit Regex gearbeitet um ein paar fetzen aus der Seite zu holen.
Funktioniert am PC auch wunderbar - doch sobald ich das ganze mit dem Android Emulator ausführe dauert es über 5 min bis ich meine Ausgabe auf dem Bildschirm habe.
Auf meinem Handy verabschiedet sich das Programm nach etlichen minuten per Fehlermeldung.
Hier mal der Code - wüsste gerne wie man die geschichte beschleunigen kann.
Die Ursache des ganzen liegt bei
PHP:
while(d.ready())
{
content += d.readLine();
}
Hier der gesamte code
PHP:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView msgBox = (TextView) findViewById(R.id.msgBox);
msgBox.setText("Bereit zum Download");
try
{
msgBox.setText("Shoutbox wird geladen");
URL url_ = new URL("www.dieurldieichlesenwill.de");
URLConnection conn = url_.openConnection();
DataInputStream in = new DataInputStream ( conn.getInputStream ( ) ) ;
BufferedReader d = new BufferedReader(new InputStreamReader(in, "utf-8"));
String content = "";
msgBox.setText("Inhalt wird eingelesen");
while(d.ready())
{
content += d.readLine();
}
if (content == "" )
{
msgBox.setText("Seite konnte nicht runtergeladen werden");
}
else
{
msgBox.setText("Shoutbox Inhalt wurde erfolgreich geladen\n");
Pattern p = Pattern.compile("<hr /><div style=\"width: 545px; overflow: hidden;\">(.*?)</div");
//Pattern p = Pattern.compile("(<hr /><div style=\"width: 545px; overflow: hidden;\">)(.+)(</div>)"); //.*? - Irgend ein zeichen einmal oder mehr
Matcher m = p.matcher(content);
//String string_ausgabe = "";
//StringBuffer sb = new StringBuffer();
List<String> list = new ArrayList<String>();
String [] eintraege;
while (m.find())
{
list.add(m.group(1));
//Systemout.println( m.group(2));
}
eintraege = new String
[list.size()];
for (int i = 0; i < eintraege.length; i++)
{
eintraege[i] = list.get(i);
}
for (int i = 0; i < eintraege.length; i++)
{
msgBox.append(eintraege[i]+"\n");
}
//lv_eintraege = (ListView)findViewById(R.id.lv_eintraege);
//lv_eintraege.setAdapter(new ArrayAdapter<Object>(this,android.R.layout.simple_list_item_1, eintraege));
//System.out.println(string_ausgabe);
//System.out.println("Die Seite konnte eingelesen werden");
}
}
catch(PatternSyntaxException pse)
{
msgBox.setText("There is a problem with the regular expression!%n");
System.exit(0);
}
catch ( MalformedURLException e )
{
msgBox.setText( "MalformedURLException: " + e );
}
catch ( IOException e )
{
msgBox.setText( "IOException: " + e );
}
}