Wednesday, January 23, 2013

Re: [android-developers] pass parameters between threads

Yeah i was thinking the same thing. 

But, how come no one asks him why he wants to "get the response data back in the main thread " ? It seems like he believes he needs to pass stuff around so other threads will have access to them (i dont see any UI related calls that would require them to be run on the UI thread).  He needs to do more learning on Scopes and Java Threads than info on ASyncTasks.


On Wednesday, January 23, 2013 6:24:30 AM UTC+2, droidDev wrote:

".. What you said there doesn't make sense. A variable has to be explicitly declared as a class or instance member; it doesn't just magically appear when you remove a local variable."

I think what John was describing does make sense. He had inadvertently created a new response var in an inner scope, thereby effectively masking out his pre-existing instance var of the same name; therefore the response data was being discarded each time the inner scope was exited.

On Jan 8, 2013 6:29 PM, "John Merlino" <stoi...@aol.com> wrote:
I have a thread to make a web service request. And then I get the data
and store it in response variable. Now I need to add items to the map
on the main thread, but how do i get the response data back in the
main thread. Here is what I have:

private void processHistory(final String authkey, final String unitId)
{
                new Thread(){
                        public void run(){
                                List<Map<String, String>> response =
WebService.getHistoryData("today",unitId,authkey);


                                myHandler.post(myRunnable);

                        }
                }.start();
        }

        final Runnable myRunnable = new Runnable() {
              public void run() {

                                Iterator<Map<String, String>> iterator = response.iterator();

                                while(iterator.hasNext()){
                                        Map<String, String> item = iterator.next();

                                        mMap.addMarker(new MarkerOptions()
                                .position(new
LatLng(Double.parseDouble(item.get("latitude")),
Double.parseDouble(item.get("longitude"))))
                                .title(item.get("address")));
                                }

              }
           };

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

--
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+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment