SDK封装

  介绍

      众所周知,诸多App本身会提供给其他App一个jar包来集成,获得当前状态。关于生成jar给别人调用的方法,即封装SDK,在此文中做个简单示例:

1、定义初始化类 

public class SdkInit {

	private static SdkInit mSdkInit = new SdkInit();

	private static IStatus mStatus = null;

	private static String Action_Test_Status = "com.test.Action_Test_Status";

	private static BroadcastReceiver receiver = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {

			// 接收发过来的信息
			int mStatusValue = intent.getIntExtra("status", -1);

			// 回调数据给监听对象
			mStatus.onStatus(mStatusValue);
		}

	};


	/**
	 * 注册监听
	 * 
	 * @param status
	 *            监听对象
	 */
	public static void registerStatusListener(Context context, IStatus status) {

		if (status != null) {

			mStatus = status;

			IntentFilter intentFilter = new IntentFilter(Action_Test_Status);

			context.registerReceiver(receiver, intentFilter);
		}

	}


	/***
	 * 注销监听
	 * @param context
	 */
	public static void unRegisterStatusListener(Context context) {

		if (receiver != null) {

			context.unregisterReceiver(receiver);

		}

	}
}

2、定义状态接口类

public interface IStatus {

	public void onStatus(int status);

}

3、使用方法

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 注册
		SdkInit.registerStatusListener(getApplicationContext(), new IStatus() {

			@Override
			public void onStatus(int status) {
				// TODO Auto-generated method stub

			}
		});

	}

	@Override
	protected void onDestroy() {
		super.onDestroy();

		SdkInit.unRegisterStatusListener(getApplicationContext());

	}

}

4、原理:这种传递数据方法其实就是监听一个写好action的广播接收者,主方往外发送带信息的action的广播,客方广播接收器接收信息,并把信息回调给IStatus对象。

    在onCreate中注册消息监听,onDestroy中注销监听,以免内存泄漏。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值