title: How to get data from service to activity
body: <p>In my app I have an activity and a service...
  The service will broadcast messages gathered from data from GPS...
  The Activity should receive the broadcast messages and update the UI...</p>
  
  <p>my code   </p>
  
  <pre><code>public class LocationPollerDemo extends Activity {
      private static final int PERIOD = 10000; // 30 minutes
      private PendingIntent pi = null;
      private AlarmManager mgr = null;
      private double lati;
      private double longi;
      private ServiceReceiver serviceReceiver;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          mgr = (AlarmManager) getSystemService(ALARM_SERVICE);
  
          Intent i = new Intent(this, LocationPoller.class);
  
          i.putExtra(LocationPoller.EXTRA_INTENT, new Intent(this, ServiceReceiver.class));
          i.putExtra(LocationPoller.EXTRA_PROVIDER, LocationManager.GPS_PROVIDER);
  
          pi = PendingIntent.getBroadcast(this, 0, i, 0);
          mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), PERIOD, pi);
  
          DebugLog.logTrace("On Create Demo");
          Toast.makeText(this, "Location polling every 30 minutes begun", Toast.LENGTH_LONG).show();
          serviceReceiver = new ServiceReceiver();
          IntentFilter filter = new IntentFilter("me");
          this.registerReceiver(serviceReceiver, filter);
      }
  
      class ServiceReceiver extends BroadcastReceiver {
          @Override
          public void onReceive(Context context, Intent intent) {
              File log = new File(Environment.getExternalStorageDirectory(), "Location2.txt");
              DebugLog.logTrace(Environment.getExternalStorageDirectory().getAbsolutePath());
  
              try {
                  BufferedWriter out = new BufferedWriter(new FileWriter(log.getAbsolutePath(), log.exists()));
  
                  out.write(new Date().toString());
                  out.write(" : ");
  
                  Bundle b = intent.getExtras();
                  Location loc = (Location) b.get(LocationPoller.EXTRA_LOCATION);
                  String msg;
  
                  if (loc == null) {
                      loc = (Location) b.get(LocationPoller.EXTRA_LASTKNOWN);
  
                      if (loc == null) {
                          msg = intent.getStringExtra(LocationPoller.EXTRA_ERROR);
                      } else {
                          msg = "TIMEOUT, lastKnown=" + loc.toString();
                      }
                  } else {
                      msg = loc.toString();
                  }
  
                  if (msg == null) {
                      msg = "Invalid broadcast received!";
                  }
  
                  out.write(msg);
                  out.write("\n");
                  out.close();
              } catch (IOException e) {
                  Log.e(getClass().getName(), "Exception appending to log file", e);
                  DebugLog.logException(e);
              }
          }
      }
  }
  </code></pre>
  
  <p>When I use this code it is not working properly...
  I am using <strong>ServiceReceiver</strong> class in separate file works fine....
  please tell me...!!</p>