@Override
protected void onDestroy() {
if (mIsBound) {
// If we have received the service, and hence registered with
// it, then now is the time to unregister.
if (mService != null) {
try {
mService.unregisterCallback(mPTTServiceListener.callback);
} catch (RemoteException e) {
// There is nothing special we need to do if the service
// has crashed.
}
}
Log.d(TAG, "onDestroy()");
// Detach our existing connection.
unbindService(mConnection);
mIsBound = false;
}
super.onDestroy();
}
// maintain connection with PTTService
private IPTTService mService = null;
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className,
IBinder service) {
Log.d(TAG, "onServiceConnected");
mService = IPTTService.Stub.asInterface(service);
try{
mService.registerCallback(mPTTServiceListener.callback);
}catch(RemoteException e){
e.printStackTrace();
}
mIsBound = true;
try {
if(mService.getServiceState() != SERVICE_STATE_NoneService){
mTestButton.setEnabled(true);
Log.d(TAG, "ServiceState = " + mService.getServiceState());
}
} catch (RemoteException e) {
// TODO: handle exception
}
//Toast.makeText(MainActivity.this, "connected",Toast.LENGTH_SHORT).show();
}
public void onServiceDisconnected(ComponentName className) {
Log.d(TAG, "onServiceDisconnected");
mService = null;
mTestButton.setEnabled(false);
}
};
// listener for PTT service
PTTServiceListener mPTTServiceListener = new PTTServiceListener(){
@Override
void onPTTServiceNotification(Bundle data) {
};
@Override
void onPTTServiceError(String strMsg) {
Toast.makeText(MainActivity.this, strMsg, Toast.LENGTH_SHORT).show();
};
};
}