1

我正在使用 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,但我没有收到任何通知?提前致谢

4

1 回答 1

0

不,似乎之前接收通知是不可能的,因为通知发送的时间是由ContentProvider实现决定的。如果ContentProvdier(尤其是系统一)仅在删除后才为 Uri 发送通知,则您无法更改它并提前获取通知。

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

于 2013-09-24T09:52:27.573 回答