10

I've an app where I wish to update the Activity (List activity to be precise) only when the activity from Service is in foreground (Active)

I can use ListActivity Intent but the problem is this brings up activity even when its in background.

I also considered using registerDataSetObserver on ListAdapter but that mandates that cursor should be updated. Updating the Cursor from external service may not be feasible.

Do we have a generic solution to this ?

Taranfx
  • 10,361
  • 17
  • 77
  • 95

2 Answers2

20

Do we have a generic solution to this ?

Probably a dozen of them. Here are a few:

  • Have the activity register a listener object with the service in onResume() and remove it in onPause()
  • Send a private broadcast, picked up by the activity via registerReceiver() when it is in the foreground
  • Have the activity supply a "pending result"-style PendingIntent to the service
  • Use a ResultReceiver
  • Use a ContentProvider, with the activity holding onto a Cursor from the provider, and the service updating the provider

This set of projects demonstrates the first three, in the context of remote services.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
0

The best solution is to have a centralized place. I consider this to be the best solution. Check this out:

click here

Community
  • 1
  • 1
Demian Flavius
  • 785
  • 1
  • 10
  • 17