user409841 user409841 - 1 year ago 97
Android Question

How to Define Callbacks in Android?

During the most recent Google IO, there was a presentation about implementing restful client applications. Unfortunately, it was only a high level discussion with no source code of the implementation.

In this diagram, on the return path there are various different callbacks to other methods.

google io presentation slide

How do I declare what these methods are?

I understand the idea of a callback - a piece of code that gets called after a certain event has happened, but I don't know how to implement it. The only way I've implemented callbacks so far have been overriding various methods (onActivityResult for example).

I feel like I have a basic understanding of the design pattern, but I keep on getting tripped up on how to handle the return path.

Answer Source

In many cases, you have an interface and pass along an object that implements it. Dialogs for example have the OnClickListener.

Just as a random example:

// The callback interface
interface MyCallback {
    void callbackCall();

// The class that takes the callback
class Worker {
   MyCallback callback;

   void onEvent() {

// Option 1:

class Callback implements MyCallback {
   void callbackCall() {
      // callback code goes here

worker.callback = new Callback();

// Option 2:

worker.callback = new MyCallback() {

   void callbackCall() {
      // callback code goes here

I probably messed up the syntax in option 2. It's early.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download