]> git.gag.com Git - fw/altos/blobdiff - altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java
altosdroid: do service start/bind/unbind in start/stop, not create/destroy.
[fw/altos] / altosdroid / src / org / altusmetrum / AltosDroid / AltosDroid.java
index e3e6012e7357b0501b187c60ec92c1dd6eb40db3..437369e22e2a26343058bbb22bb029289265266c 100644 (file)
@@ -139,6 +139,30 @@ public class AltosDroid extends Activity {
        };
 
 
+       void doBindService() {
+               bindService(new Intent(this, TelemetryService.class), mConnection, Context.BIND_AUTO_CREATE);
+               mIsBound = true;
+       }
+
+       void doUnbindService() {
+               if (mIsBound) {
+                       // If we have received the service, and hence registered with it, then now is the time to unregister.
+                       if (mService != null) {
+                               try {
+                                       Message msg = Message.obtain(null, TelemetryService.MSG_UNREGISTER_CLIENT);
+                                       msg.replyTo = mMessenger;
+                                       mService.send(msg);
+                               } catch (RemoteException e) {
+                                       // There is nothing special we need to do if the service has crashed.
+                               }
+                       }
+                       // Detach our existing connection.
+                       unbindService(mConnection);
+                       mIsBound = false;
+               }
+       }
+
+
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
@@ -178,10 +202,6 @@ public class AltosDroid extends Activity {
                        }
                });
 
-               // Start Telemetry Service
-               startService(new Intent(AltosDroid.this, TelemetryService.class));
-
-               doBindService();
        }
 
        @Override
@@ -193,13 +213,17 @@ public class AltosDroid extends Activity {
                        Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                        startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
                }
+
+               // Start Telemetry Service
+               startService(new Intent(AltosDroid.this, TelemetryService.class));
+
+               doBindService();
        }
 
        @Override
        public synchronized void onResume() {
                super.onResume();
                if(D) Log.e(TAG, "+ ON RESUME +");
-
        }
 
        @Override
@@ -212,17 +236,16 @@ public class AltosDroid extends Activity {
        public void onStop() {
                super.onStop();
                if(D) Log.e(TAG, "-- ON STOP --");
+
+               doUnbindService();
        }
 
        @Override
        public void onDestroy() {
                super.onDestroy();
-
-               doUnbindService();
+               if(D) Log.e(TAG, "--- ON DESTROY ---");
 
                if (tts != null) tts.shutdown();
-
-               if(D) Log.e(TAG, "--- ON DESTROY ---");
        }
 
 
@@ -286,28 +309,4 @@ public class AltosDroid extends Activity {
                return false;
        }
 
-
-       void doBindService() {
-               bindService(new Intent(this, TelemetryService.class), mConnection, Context.BIND_AUTO_CREATE);
-               mIsBound = true;
-       }
-
-       void doUnbindService() {
-               if (mIsBound) {
-                       // If we have received the service, and hence registered with it, then now is the time to unregister.
-                       if (mService != null) {
-                               try {
-                                       Message msg = Message.obtain(null, TelemetryService.MSG_UNREGISTER_CLIENT);
-                                       msg.replyTo = mMessenger;
-                                       mService.send(msg);
-                               } catch (RemoteException e) {
-                                       // There is nothing special we need to do if the service has crashed.
-                               }
-                       }
-                       // Detach our existing connection.
-                       unbindService(mConnection);
-                       mIsBound = false;
-               }
-       }
-
 }