DISCLAIMER: I realize I should be doing `Handler.obtainMessage();` instead of instantiating one myself, but this code demonstrates the problem I'm having with java.

I have some code where I am trying to send a message with a string to a handler in android.

I first tried something like this:
`mHandler.sendMessage(new Message().setData(new Bundle().putString("key","value)));`

This obviously didn't work, it says setData args (Bundle) don't match what I've given it (void);

OK, so putString must return void, and I guess setData will return void as well, so this was a bad approach. I tried breaking it up like so:

```
Bundle b = new Bundle();
b.putString("key","value");
Message m = new Message();
m.setData(b);
listener.sendMessage(m);

```

This seems like a messy way to do this.
What is the typical way? If I do this, these objects will lose their reference and be garbage collected on method completion, or should I add m=null; b=null; to this method; or should I assign them null in the handleMessage method? (I'm not sure how this works in a multithread situation.)