android开发,关于IntentFilter跟BroadcastReceiver的理解

android开发,关于IntentFilter和BroadcastReceiver的理解之前看了一些例子,对Intent,IntentFilter,一直存

android开发,关于IntentFilter和BroadcastReceiver的理解
之前看了一些例子,对Intent,IntentFilter,一直存在许多疑惑,今天看了一个关于调用扫描内存卡里媒体文件例子,总算明白它们之间的关系。
IntentFilter用来过滤Intent的action值,当调用一个intent的时候,它会有不同的状态产生,比生开始跟结束,广播接收类并不是对每一种状态都进行监听处理,所以这时候需要一个Filter来进行过滤。

IntentFilter intentfilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
     intentfilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
    intentfilter.addDataScheme("file");
    SCansdReceiver scanSdReceiver = new SCansdReceiver();
    registerReceiver(scanSdReceiver, intentfilter);
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
    Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath())));