Thanks, will try that.
On Sep 14, 9:21 pm, Jason Proctor <[email protected]>
wrote:
> discover AsyncTask and your worries will be over :-)
>
> i do all my async stuff with it now. problem solved.
>
>
>
> >Again, I found the solution before the post made it through
> >moderation. Anyway, the workaround I found was to use a
> >android.os.Handler and use the postDelayed() function within it. If
> >anyone knows a better solution, please let me know.
>
> >On Sep 13, 3:54 pm, Felix Oghina <[email protected]> wrote:
> >> My Activity fetches an XML from the Web, parses it and displays
> >> information in a ListView. Everything was working fine until I decided
> >> to do the XML fetching and parsing in a TimerTask, so that I could
> >> show a "Loading..." message while that is happening. After lots of
> >> debugging, I realized that the application hangs on
> >> mListAdapter.add(mCurName), where mListAdapter is an
> >> ArrayAdapter<CharSequence> and mCurName is a String. This instruction
> >> worked before using a TimerTask, but now it just stops execution
> >> without any exception or anything. I have tried creating the Timer
> >> with both new Timer(true) and new Timer(false), but nothing seems to
> >> work.
>
> >> Note: the mListAdapter.add(mCurName) call is actually made in a
> >> function within my main Activity class, which, in turn, is called from
> >> the run() function inside the TimerTask class that is defined within
> >> my main Activity class. Just to make sure I made sense, here's a
> >> sketch of my code:
>
> >> public class MyActivity extends Activity {
> >> // vars...
> >> protected void onCreate(Bundle savedInstanceState) {
> >> // stuff...
> >> Timer timer = new Timer(true);
> >> SearchTask task = new SearchTask();
> >> timer.schedule(task, 1);
> >> }
> >> public void run() {
> >> // stuff...
> >> mResultList = parseResponseXml(responseXml);
> >> // other stuff, but execution never reaches this point...
> >> }
>
> >> public class XmlHandler extends DefaultHandler {
> >> // vars...
> >> public void startElement(...) {...}
> >> public void characters(...) {...}
> >> public void endElement(String uri, String name,
> >>String qName) {
> >> // stuff...
> >> if (name == "resource") {
> >> inResource = false;
> >> if (inResults) { // this is where
> >>the problem is
> >> Log.i("TasteKidDebug",
> >>"Before mListAdapter.add"); // this gets logged
> >> mListAdapter.add(mCurName);
> >> Log.i("TasteKidDebug",
> >>"After mListAdapter.add"); // this doesn't
> >> mResults.add(mCurName, mCurType);
> >> }
> >> }
> >> // stuff..
> >> }
> >> }
>
> >> public ResourceList parseResponseXml(String xml) throws Exception
> >> {
> >> // stuff...
> >> XmlHandler handler = new XmlHandler();
> >> xr.setContentHandler(handler);
> >> xr.parse(new InputSource(new StringReader(xml)));
> >> return handler.mResults;
> >> }
>
> >> }
>
> --
> jason.vp.engineering.particle
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---