ContentObserver для реализации строки

После "наблюдения" за ContentObserver я заметил, что OnChange до API 16 не передает никаких параметров, поэтому я решил применить его к каждой строке в моем проекте (проект загружает URL-адреса с помощью встроенного DownloadManager)

для каждой строки я создаю новый ContentObserver:

    Uri downloadsContentUri = Uri.parse("content://downloads/my_downloads/downloads/" + appDownloadId);
    DownloadsObserver downloadsObserver = new DownloadsObserver(downloadId, new Handler());
    getContentResolver().registerContentObserver(downloadsContentUri, true, downloadsObserver);

как вы можете видеть, что Uri всегда изменяется по идентификатору строки (это то же самое в БД DownloadManager, которую я проверял), и после этого кода я сохраняю всех наблюдателей в списке, странная вещь - вызывается OnChange только один раз и только для первой загрузки, и никогда больше не вызывается, даже после завершения загрузки..

что я тут делаю не так? Как выполнить наблюдение за каждой строкой в ​​базе данных DownloadManager? (Я системное приложение)

Благодарю.

1 ответ

Решение

Я понял!

Это мое решение для ContentObserver для каждой строки, его можно применить к API 15 (15 не имеет OnChange с параметром URI, как в API 16). Конечно, вам нужен новый ContentObserver для каждой строки.

ошибка была в этой линии

 Uri downloadsContentUri = Uri.parse("content://downloads/my_downloads/downloads/" + appDownloadId);

он должен быть без "/downloads/", например так:

Uri downloadsContentUri = Uri.parse("content://downloads/my_downloads/" + appDownloadId);

и это мой ContentObserver:

public class DownloadsObserver extends ContentObserver
{
private long mAppDownloadId = 0;

public DownloadsObserver(Handler handler)
{
    super(handler);
}

public DownloadsObserver(long appDownloadId, Handler handler)
{
    super(handler);
    mAppDownloadId = appDownloadId;
}


@Override
public void onChange(boolean selfChange)
{
    super.onChange(selfChange);
    // Do some work on this row with the id

}
}
Другие вопросы по тегам