1

音声通知に関するコールバックを取得したい。オブザーバーを作成します:

getContentResolver().registerContentObserver(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, false, new MyContentObserver(_handler) { ...

毎回 onChange を取得してから、曲を追加または削除します。

しかし、私は別のものを理解していません:私はいくつかのファイル(test.log)をデバイスにコピーします。ファイルをコピーした後、onChange を取得しません。しかし、このファイルを削除すると、onChange になります。しかし、なぜ?

4

1 に答える 1

1

コンテンツ プロバイダー内で、通知を送信するアクションを定義できます。delete()アクションの例を次に示します。

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
    final SQLiteDatabase db = mOpenHelper.getWritableDatabase();
    switch (sUriMatcher.match(uri)) {
        case POSTS: {
            int rowCount = db.delete(DatabaseProperties.TABLE_NAME_POSTS, selection, selectionArgs);
            getContext().getContentResolver().notifyChange(uri, null);
            return rowCount;
        }
        default: {
            throw new UnsupportedOperationException("Unknown URI: " + uri);
        }
    }
}

おそらく見逃しているコマンドはnotifyChange().

于 2012-08-16T08:07:36.423 に答える