저는 Activity와 BroadcastReceiver의 두 부분으로 구성된 응용 프로그램을 개발 중입니다. BroadcastReceiver는 들어오는 SMS를 처리하고 데이터베이스에 새 행을 만들 수 있습니다.비동기 SQLite 데이터베이스 행 추가 처리
문제점 : BroadcastReceiver가 데이터베이스에 새 행을 추가하는 동안 활동이 열려 있고 활성화되어있는 경우 - 새 행이 활동의 ListView에 나타나지 않습니다.
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);
은 어떻게 든 브로드 캐스트 리시버 부분에서 활동의 새로운 행 추가를 처리 할 수 있습니다 여기에
코드 샘플입니다? 필요한 것은 UI 새로 고침 메서드 중 하나를 트리거하는 것입니다.