Android中的BroadCast静态注册与动态注册

1.静态注册

新建MyBroadcast类继承BroadcastReceiver,实现onReceive方法

/**
 * Author:JsonLu
 * DateTime:2015/9/21 16:44
 * Email:luxd@sumpay.com
 * Desc:
 **/
public class MyBroadcast extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (MyTest.ACTION1.equals(action)) {
            T.showShort(context, String.valueOf(System.currentTimeMillis()));
        } else if (MyTest.ACTION2.equals(action)) {
            Date date = new Date();
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            T.showShort(context, dateFormat.format(date));
        } else {
            T.showShort(context, "其他广播");
        }
    }
}

在AndroidManifest文件中注册

       <receiver android:name=".broadcast.MyBroadcast">
            <intent-filter>
                <action android:name="android.intent.action.my_broadcast" />
            </intent-filter>
        </receiver>

发送广播

    public static final String ACTION1 = "android.intent.action.my_broadcast";
    public static final String ACTION2 = "android.intent.action.my_broadcast1";
            /**
             * 静态注册广播
             * 需要在AndroidManifest文件中进行注册
             *
             */
            case R.id.staticsendbrocast:
                Intent intent1 = new Intent();
                intent1.setAction(ACTION1);
                sendBroadcast(intent1);
                break;

2.动态注册

            /**
             * 动态注册广播
             * 不需要在AndroidManifest文件中注册
             */
            case R.id.sendbrocast:
                Intent intent = new Intent();
                IntentFilter intentFilter = new IntentFilter();
                intentFilter.addAction(ACTION2);
                registerReceiver(new MyBroadcast(), intentFilter);
                intent.setAction(ACTION2);
                sendBroadcast(intent);
                break;

 

posted @ 2015-09-21 18:20  JsonLu  阅读(499)  评论(0编辑  收藏  举报