Nel service nel punto in cui vuoi aggiornare i dati crei un Intent e lo invii tramite sendBroadcast().
codice:
Intent intent = new Intent ("IntSvc");
intent.putExtra("IntentType", Constants.IntentType.UPDATE_LISTVIEW);
sendBroadcast(intent);
Nell'acivity devi crearti un BroadcastReceiver che aggiorna i dati
codice:
@Override
public void onResume() {
IntentFilter filterDBF = new IntentFilter("IntSvc");
registerReceiver(receiverDbf, new IntentFilter(filterDBF));
}
@Override
public void onPause() {
super.onPause();
unregisterReceiver(receiverDbf);
}
private final BroadcastReceiver receiverDbf = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getIntExtra("IntentType", 0)==Constants.IntentType.UPDATE_LISTVIEW) {
getContentResolver().notifyChange(MyProvider.CONTENT_URI_MY_TABLE, null);
}
}
}