广播

四大组件中,广播不仅可以静态注册,还可以动态注册

静态注册

package com.example.broadcast;
public class MyReceiver extends BroadCastReceiver{
    @Override
    public void onReceive(Context context, Intent intent){
        ....
    }
}


Manifest.xml
<receiver android:name=".MyReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>


动态注册

package com.example.broadcast;
public class MyReceiver extends BroadCastReceiver{
    @Override
    public void onReceive(Context context, Intent intent){
        ....
    }
}

package com.example.broadcast;
public class MainActivity extends Activity{

    private MyReceiver;
    private IntentFilter intentFilter;

    @Override
    public void onCreate(Bundle savedInstancedState){
        super.onCreate(savedInstancedState);

        intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.BOOT_COMPLETED");
        myReceiver = new MyReceiver();
        registerReceiver(myReceiver,intentFilter);
    }

    @Override
    public void onDestroy(){
        super.onDestroy();
        unregisterReceiver(myReceiver);
    }
}

发送广播

标准广播(异步)

Intent intent = new Intent("android.intent.action.BOOT_COMPLETED");
sendBroadcast(intent);

有序广播(同步,容易被截断)

Intent intent = new Intent("android.intent.action.BOOT_COMPLETED");
sendOrderedBroadcast(intent);

你可能感兴趣的:(广播)