[android-developers] Smack & xmpp / Handler question
Have anybody tried it? I am doing some experiments, and I saw that: - connect / login are executed in the same thread of the caller, then are blocking - The packetlistener callbacks are called from smack receiver thread - The sendpacket enqueues the message to a queue Now my question: when I receive a message, I need to propagate it. I can use an handler, but it only gets the runnable object. How can I pass the data to the runnable called by the handler? I can't use a local variabile, because if I receive a lot of messages it will be overridden and I will loose some of them. Is it ok to use a queue to feed the runnable? Are there other techniques? Thanks and regards, Federico -- 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
Re: [android-developers] Smack & xmpp / Handler question
Put the data into the instance of Runnable subclass you pass to handler. Something like this: private static class WorkerRunnable implements Runnable { ToastRunnable() { mData1 = data1; mData2 = data2; ... } @Override public void run() { mData1, mData2 are accessible here } private Object mData1; private Object mData2; } And then: mHandler.post(new WorkerRunnable (data1, data2, )); -- Kostya 07.10.2010 16:27, Federico Paolinelli пишет: Have anybody tried it? I am doing some experiments, and I saw that: - connect / login are executed in the same thread of the caller, then are blocking - The packetlistener callbacks are called from smack receiver thread - The sendpacket enqueues the message to a queue Now my question: when I receive a message, I need to propagate it. I can use an handler, but it only gets the runnable object. How can I pass the data to the runnable called by the handler? I can't use a local variabile, because if I receive a lot of messages it will be overridden and I will loose some of them. Is it ok to use a queue to feed the runnable? Are there other techniques? Thanks and regards, Federico -- Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- 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
Re: [android-developers] Smack & xmpp / Handler question
Thanks a lot. Federico On Thu, Oct 7, 2010 at 2:36 PM, Kostya Vasilyev wrote: > Put the data into the instance of Runnable subclass you pass to handler. > > Something like this: > > private static class WorkerRunnable implements Runnable { > ToastRunnable() { > mData1 = data1; > mData2 = data2; > ... > } > > @Override > public void run() { > mData1, mData2 are accessible here > } > > private Object mData1; > private Object mData2; > > } > > And then: > > mHandler.post(new WorkerRunnable (data1, data2, )); > > -- Kostya > > 07.10.2010 16:27, Federico Paolinelli пишет: >> >> Have anybody tried it? >> I am doing some experiments, and I saw that: >> >> - connect / login are executed in the same thread of the caller, then >> are blocking >> - The packetlistener callbacks are called from smack receiver thread >> - The sendpacket enqueues the message to a queue >> >> Now my question: when I receive a message, I need to propagate it. I >> can use an handler, but it only gets the runnable object. How can I >> pass the data to the runnable called by the handler? >> >> I can't use a local variabile, because if I receive a lot of messages >> it will be overridden and I will loose some of them. Is it ok to use a >> queue to feed the runnable? Are there other techniques? >> >> Thanks and regards, >> >> Federico >> > > > -- > Kostya Vasilyev -- WiFi Manager + pretty widget -- > http://kmansoft.wordpress.com > > -- > 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 -- Federico -- 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