问题:怎么令自己的Activity知道MediaScannerService服务运行完了?
    或者:怎么令自己的Activity知道MediaScannerService是否正在运行?详细情况:我知道,在底层有一个MediaScannerService服务.可以通过广播机制,在启动它进行扫描工作.我用如下代码来启动它进行扫描:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+Environment.getExternalStorageDirectory())));经过查看日志,我的确看到它启动了.正在运行...估计过个15秒钟的样子finish.但是怎么令我自己的Activity知道这个服务运行完了?然后我在同contentResolver进行数据获取.

解决方案 »

  1.   

    注册一个广播监听即可,如下
    public class ScanSdReceiver extends BroadcastReceiver
        {
            @Override  
            public void onReceive(Context context, Intent intent)
            {
             String action = intent.getAction();
                if (Intent.ACTION_MEDIA_SCANNER_STARTED.equals(action))
                {
                 //开始扫描,把你的代码放这里
                }
                else if (Intent.ACTION_MEDIA_SCANNER_FINISHED.equals(action))
                {
                 //扫描结束,把你的代码放这里
                }
            }
        }