Я занимаюсь разработкой приложения, которое состоит из 2 частей: Activity и BroadcastReceiver.BroadcastReceiver обрабатывает входящие SMS и может создавать новые строки в базе данных.
У меня проблема: если активность открыта и активна, когда BroadcastReceiver добавляет новую строку в базу данных - новая строка не отображается в ListView активности.
Я пытался использовать Cursor наблюдатели для курсора listView, но этот наблюдатель вызывает уведомление только об изменении строки.При добавлении новой строки этот наблюдатель ничего не делает.
Вот пример кода:
m_testCursor = m_dbAdapter.fetchAll();
m_testCursor.registerContentObserver(
new ContentObserver(new Handler())
{
@Override
public void onChange(boolean selfChange)
{
Log.w("my_tag", "test content changed");
}
}
);
m_testCursor.registerDataSetObserver(
new DataSetObserver()
{
@Override
public void onChanged()
{
Log.w("my_tag", "test data set changed");
}
}
);
SimpleCursorAdapter checks = new SimpleCursorAdapter(this, R.layout.nodes_row, m_testCursor, from, to);
setListAdapter(checks);
Можно ли как-то обработать добавление новых строк в Activity из части BroadcastReceiver?Все, что мне нужно, это просто вызвать один из методов обновления пользовательского интерфейса.