我正在使用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,但我没有得到任何通知? 提前谢谢
答案 0 :(得分:0)
不,似乎无法在之前接收通知,因为通知发送的时间由ContentProvider
实施决定。如果ContentProvdier
(特别是系统1)仅在删除后发送Uri通知,则您无法更改它获取通知。
例如,如果您检查MediaProvider.delete()来源 - 很明显,最后会调用notify。