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...
my 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); } } } } When I use this code it is not working properly... I am using ServiceReceiver class in separate file works fine.... please tell me...!!
