--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
--- Begin Message ---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 -~----------~----~----~----~------~----~------~--~---
--- End Message ---

