如何使用Contentresolver获取通知

时间:2013-09-18 12:56:03

标签: android android-contentresolver

我正在使用contentresolver获取通知,如下所示

@Override
public void onStart(Intent intent, int startid) 
{       
    this.getApplicationContext().getContentResolver().registerContentObserver (MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true, contentObserver);
    this.getApplicationContext().getContentResolver().registerContentObserver (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, true, contentObserver);
    this.getApplicationContext().getContentResolver().registerContentObserver (MediaStore.Video.Media.EXTERNAL_CONTENT_URI, true, contentObserver);
}
private class MyContentObserver extends ContentObserver 
{
@Override
    public void onChange(boolean selfChange) 
    {
       super.onChange(selfChange);
        System.out.println (" Inside Contentobserver onChange" );
    }
}

这里每当我从sdcard中删除任何图像/视频/音频文件时,完成Onchange(bool)正在调用的删除操作。 是否有可能在删除前收到通知?我也试过Broadcastreceiver,但我没有得到任何通知? 提前谢谢

1 个答案:

答案 0 :(得分:0)

不,似乎无法在之前接收通知,因为通知发送的时间由ContentProvider实施决定。如果ContentProvdier(特别是系统1)仅在删除后发送Uri通知,则您无法更改它获取通知。

例如,如果您检查MediaProvider.delete()来源 - 很明显,最后会调用notify。