好用的传递数据的工具类

这个是我在项目中的写的一个传递数据的工具类。在接受数据的Activity或者fragment中,添加监听事件addIMessageListener, 在发送的Activity或者Fragment里面直接发送IMessageCenter.Send(...)即可。

import android.os.Handler;
import android.os.Message;
import android.util.SparseArray;

public class IMessageCenter implements Handler.Callback
{

	public static final int IMESSAGE_UPDATE_LIST = 1001;
	public static final int IMESSAGE_UPDATE_GRID = 1002;

	private static IMessageCenter instance;
	private Handler mHandler;
	private SparseArray<IMessageListener> mMessageQueue = new SparseArray<IMessageListener>( );

	public IMessageCenter( )
	{
		this.mHandler = new Handler( this );
	}

	public static IMessageCenter getInstance( )
	{
		if ( instance == null )
		{
			instance = new IMessageCenter( );
		}
		return instance;
	}

	public void addIMessageListener( int what, IMessageListener listener )
	{
		if ( mMessageQueue == null )
		{
			return;
		}
		mMessageQueue.put( what, listener );
	}

	public void removeIMessageListener( int what )
	{
		if ( mMessageQueue == null )
		{
			return;
		}
		mMessageQueue.delete( what );
	}

	public void clearIMessageListener( )
	{
		if ( mMessageQueue == null )
		{
			return;
		}
		mMessageQueue.clear( );
	}

	public void send( int what, Object obj )
	{
		Message msg = new Message( );
		msg.what = what;
		msg.obj = obj;
		mHandler.sendMessage( msg );
	}

	@Override
	public boolean handleMessage( Message msg )
	{
		if ( mMessageQueue != null )
			if ( mMessageQueue.indexOfKey( msg.what ) >= 0 )
			{
				IMessageListener listener = mMessageQueue.get( msg.what );
				listener.iMessageReceived( msg );
				return true;
			}
		return false;
	}

	/**
	 * Interface for IMessage listeners
	 */
	public interface IMessageListener
	{
		/**
		 * Handles received IMessage.
		 * 
		 * @param Message the received Message
		 */
		void iMessageReceived( Message msg );
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值