Hello,

i have a thread, where i want to parse an gpx (xml) file. But it does
not work. My Thread and  XmlPullParser looks like:

getWpt = new Thread (new Runnable ()
        {
                        @Override
                        public void run()
                        {
                                XmlPullParserFactory pullFactory;
                        try {
                            pullFactory = XmlPullParserFactory.newInstance();

                            XmlPullParser pullParser = 
pullFactory.newPullParser();
                            FileReader file = new FileReader(new File
(Environment.getExternalStorageDirectory()+"/"+fileList[pos]));

                            pullParser.setInput(file);

                            Log.e("IMINININ","MEMEME");

                            // state flags
                            boolean inWayPoint = false;
                            boolean inDesc = false;
                            boolean inTrack = false;
                            boolean inTrackPoint = false;


                            int eventType = pullParser.getEventType();

                            //TEST:
                            Log.e("EVENTTYPE",""+eventType
+XmlPullParser.END_DOCUMENT);
                            if(eventType == XmlPullParser.END_DOCUMENT)
                            {
                                getWaypointHandler.sendEmptyMessage(3);
                            }

                           //NORMAL PARSER:
                            while (eventType != XmlPullParser.END_DOCUMENT) {
                                Log.e("START","TAG"+pullParser.getName());
                                switch (eventType) {
                                case XmlPullParser.START_DOCUMENT:
                                    break;
                                case XmlPullParser.START_TAG:
                                        
Log.e("START","TAG"+pullParser.getName());

                                    if (pullParser.getName().compareTo("wpt") 
== 0)
                                    {
                                        Log.e("WAY","POINT");
                                        inWayPoint = true;
                                    }
                                    else if 
(pullParser.getName().compareTo("desc")
==0)
                                    {
                                        if (inWayPoint)
                                                inDesc = true;
                                    }
                                    else if 
(pullParser.getName().compareTo("trk")
==0)
                                        {
                                                inTrack = true;
                                                //alle Wegpunkte eingelesen
                                                Log.e("WAY","POINTEND");
                                            
getWaypointHandler.sendEmptyMessage(0);
                                        }
                                    else 
if(pullParser.getName().compareTo("trkpt")
==0)
                                    {
                                        count ++;
                                        inTrackPoint = true;
                                         if(count%50 == 0)
                                                
getWaypointHandler.sendEmptyMessage(1);
                                    }
                                    break;

                                case XmlPullParser.END_TAG:
                                    if (pullParser.getName().equals("wpt")) {
                                        inWayPoint = false;

                                    }else if 
(pullParser.getName().equals("desc")) {
                                        inDesc = false;
                                    } else 
if(pullParser.getName().equals("trk")) {
                                        inTrack = false;
                                        getWaypointHandler.sendEmptyMessage(2);
                                    }else if 
(pullParser.getName().equals("trkpt"))
{
                                        inTrackPoint = false;
                                    }
                                    break;
                                case XmlPullParser.TEXT:
                                    if (inWayPoint)
                                        if (inDesc) {
                                           ....
                                        }
                                    }
                                    if(inTrack)
                                    {
                                    }
                                    break;
                                }
                                eventType = pullParser.nextTag(); //.next();
                                Log.e("END-EVENT",""+eventType
+XmlPullParser.END_DOCUMENT);
                            }
                         catch (Exception e) {

                        }
                        }
        });
        getWpt.start();


But it never find my tags (the handler getWaypointHandler is never
called). The XmlPullParser find the xml file, because my logcat shows:

I/ActivityManager(  579): Starting activity: Intent
{ cmp=de.stefandahmen.android/.NavTrack (has extras) }
E/ActivityThread(  692): Failed to find provider info for
com.google.settings
E/ActivityThread(  692): Failed to find provider info for
com.google.settings
E/ActivityThread(  692): Failed to find provider info for
com.google.settings

//GOES IN TRY BLOCK:
E/IMINININ(  692): MEMEME

//NOT THE END_TAG:
E/EVENTTYPE(  692): 01



I/ActivityManager(  579): Start proc android.tts for service
android.tts/.TtsService: pid=765 uid=10023 gids={3003, 1015}
I/jdwp    (  765): received file descriptor 10 from ADB
D/dalvikvm(  553): GC freed 282 objects / 10712 bytes in 419ms
I/MapActivity(  692): Handling network change notification:CONNECTED
E/MapActivity(  692): Couldn't get connection factory client
I/ARMAssembler(  579): generated
scanline__00000077:03515104_00000000_00000000 [ 27 ipp] (41 ins) at
[0x29dca8:0x29dd4c] in 922000 ns
D/dalvikvm(  553): GC freed 50 objects / 2184 bytes in 960ms
I/ARMAssembler(  579): generated
scanline__00000077:03515104_00000001_00000000 [ 46 ipp] (65 ins) at
[0x29dd50:0x29de54] in 1508000 ns
I/ActivityManager(  579): Displayed activity
de.stefandahmen.android/.NavTrack: 2574 ms (total 2574 ms)
I/TtsService(  765): TtsService.onCreate()
D/dalvikvm(  553): GC freed 2 objects / 48 bytes in 482ms
D/dalvikvm(  765): Trying to load lib /system/lib/libttssynthproxy.so
0x437600b0
D/dalvikvm(  765): Added shared lib /system/lib/libttssynthproxy.so
0x437600b0
E/TTS is loading(  765): /system/lib/libttspico.so
V/SynthProxy(  765): AudioTrack started
V/TtsService(  765): TtsService.setLanguage(eng, , )
I/SVOX Pico Engine(  765): TtsEngine::setLanguage found matching
language(eng) but not matching country().
I/SVOX Pico Engine(  765): loaded en-US successfully
I/SynthProxy(  765): setting speech rate to 100
I/TTS received: (  692): Umlaute wie u.a. ä, ö und ü o.ä. sind
einigermaßen einfach. Doch z.B. andere Abk.en sind schwieriger?
Nein!!! Aber 1. dies und 2. das geht auch
V/TtsService(  765): TTS service received Umlaute wie u.a. ä, ö und ü
o.ä. sind einigermaßen einfach. Doch z.B. andere Abk.en sind
schwieriger? Nein!!! Aber 1. dies und 2. das geht auch
I/TtsService(  765): Stopping
I/TtsService(  765): Stopped
I/TtsService(  765): TTS processing: Umlaute wie u.a. ä, ö und ü o.ä.
sind einigermaßen einfach. Doch z.B. andere Abk.en sind schwieriger?
Nein!!! Aber 1. dies und 2. das geht auch
V/TtsService(  765): TtsService.setLanguage(deu, , )
I/SVOX Pico Engine(  765): TtsEngine::setLanguage found matching
language(deu) but not matching country().
I/SVOX Pico Engine(  765): loaded de-DE successfully
I/SynthProxy(  765): setting speech rate to 100
W/AudioTrack(  765): obtainBuffer timed out (is the CPU pegged?)
0x1a89a8 user=00001000, server=00000000
W/AudioFlinger(  554): write blocked for 49 msecs
W/AudioFlinger(  554): write blocked for 50 msecs
W/AudioFlinger(  554): write blocked for 49 msecs
W/AudioFlinger(  554): write blocked for 46 msecs
W/AudioFlinger(  554): write blocked for 52 msecs
W/AudioFlinger(  554): write blocked for 50 msecs
W/AudioFlinger(  554): write blocked for 55 msecs
W/AudioFlinger(  554): write blocked for 63 msecs
W/AudioFlinger(  554): write blocked for 48 msecs
W/AudioFlinger(  554): write blocked for 49 msecs
W/AudioFlinger(  554): write blocked for 47 msecs
W/AudioFlinger(  554): write blocked for 74 msecs
W/AudioFlinger(  554): write blocked for 56 msecs
W/AudioFlinger(  554): write blocked for 49 msecs
W/AudioFlinger(  554): write blocked for 49 msecs
W/AudioTrack(  765): obtainBuffer timed out (is the CPU pegged?)
0x1a89a8 user=00017800, server=00016800
W/AudioFlinger(  554): write blocked for 47 msecs
W/AudioFlinger(  554): write blocked for 48 msecs
W/AudioFlinger(  554): write blocked for 48 msecs
W/AudioFlinger(  554): write blocked for 50 msecs
W/AudioFlinger(  554): write blocked for 52 msecs
W/AudioFlinger(  554): write blocked for 52 msecs
W/AudioFlinger(  554): write blocked for 50 msecs
W/AudioFlinger(  554): write blocked for 55 msecs

Thanks for help,
Stefan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to