Giter VIP home page Giter VIP logo

localmessagemanager's Introduction

LocalMessageManager

Used for efficient and simple delivery of messages within you application. It's an alternative to LocalBroadcastManager.

  • Simple to use
  • Can send any arbitrary object (doesn't need to be Parceable / Serializable / Bundle)
  • Very efficient - objects are pooled and no new instances are created during delivery
  • Uses standard Android Handler for message delivery
  • Messages are always delivered to the main UI thread
  • No Context needed
  • Lightweight - just one main class (LocalMessageManager)

Comparision with LocalBroadcastManager

  • Less complex code (compare with LocalBroadcastManager source)
  • No need to use a Bundle to transfer the data and add unnecessary string keys
  • Doesn't create any new instances, less impact on Garbage Collector
  • No need to define IntentFilters / Actions
  • Less error prone due to more straighforward API

How to implement

You can send a message from anywhere. If you don't need any parameters, just use:

LocalMessageManager.getInstance().send(R.id.msg_sample_event);

(The message ID is an integer. You can use simple constants or Android IDs or anything else).

If you want to send an arbitrary object:

LocalMessageManager.getInstance().send(R.id.msg_sample_event, new MyCustomObject());

(you can also send a simple integer argument or a Bundle)

Register receiver. In case of an Activity this is usually onStart(), or onCreate(). You can also put this code into your base activity or fragment.

LocalMessageManager.getInstance().addListener(this);

You can listen to all events or add only a listener to a specific message ID.

Unregister receiver. In case of an Activity this is usually in onStop() or onDestroy(). You can also put this code into your base activity or fragment.

LocalMessageManager.getInstance().removeListener(this);

Create a listener or let your class implement LocalMessageCallback.

@Override
public void handleMessage(@NonNull final LocalMessage msg) {
    switch (msg.getId()) {
        case R.id.msg_sample_event : {
            mTextView.setText("Received simple event");
        }
        break;
    }
}

Download

Grab via Gradle:

compile 'eu.inloop:localmessagemanager:0.1.4'

localmessagemanager's People

Contributors

yuraj11 avatar

Watchers

James Cloos avatar dev.with avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.