Ok I hit trouble, when i actually recycled a message in handleMessage and
called sendEmptyMessage(something) from handleMessage. No idea what's
happening, but for now I have removed recycle call.
On Tue, Mar 25, 2008 at 2:08 AM, Harsh Jain <[EMAIL PROTECTED]> wrote:
> Thanks, also I couldnt find this in documentation anywhere, but should you
> call msg.recycle() at the end in handleMessage() or the guy who calls
> handleMessage does it automatically.
>
> regards,
> harsh
>
>
> On Mon, Mar 24, 2008 at 10:26 PM, hackbod <[EMAIL PROTECTED]> wrote:
>
> >
> > It is more efficient to create one Handler that takes care of a bunch
> > of events, than separate inner class Runnables for each of them. So I
> > would suggest something like this:
> >
> > static final int MSG1 = 1;
> > static final int MSG2 = 2;
> >
> > void do1() {
> > }
> >
> > void do2() {
> > }
> >
> > final Handler mHandler = new Handler() {
> > void handleMessage(Message m) {
> > switch (m.what) {
> > case MSG1: do1(); break;
> > case MSG2: do2(); break;
> > }
> > }
> > }
> >
> > In the examples below, if the Handler is only going to do one thing,
> > then there is no difference really between it and a Runnable, so I
> > would suggest using a Runnable. But ideally you would do something
> > like the above, a Handler that does multiple things. And you can
> > structure that however you want -- as an anonymous inner class like
> > this, as a regular inner class, as a separate class, etc.
> >
> > On Mar 24, 2:58 am, "Harsh Jain" <[EMAIL PROTECTED]> wrote:
> > > w.r.t andoid which of the two is better..
> > > a) Implement runnables as inner classes and post it to a handler. Note
> > here
> > > variables can be directly accessed.
> > >
> > > class AService {
> > > String x, y, z; // packaged scope for efficient access.
> > >
> > > class B implements Runnable {
> > > void run() {
> > > x = y + z ;// do something with x,y,z
> > > }
> > > }
> > >
> > > onCreate() {
> > > mWorker.handler.postRunnable(new B());
> > > }
> > >
> > > }
> > >
> > > b) Create a MyHandler extending handler and receive messages and
> > translate
> > > them to the appropriate action.
> > >
> > > class MyHandler extends Handler {
> > > AService a;
> > > public MyHandler(AService a) { }
> > >
> > > void action1() {
> > > a.x = a.y + a.z // Do something with a's inner variables.
> > > }
> > >
> > > void handleMessage(Message w) {
> > > action1();
> > > }
> > >
> > > }
> > >
> > > I guess people know what i mean.
> > >
> > > regards,
> > > harsh
> > > >
> >
>
--~--~---------~--~----~------------~-------~--~----~
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]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---