Я столкнулся с ошибкой во время использования службы в android. Я вызываю действие CallingScreenActivity, которое я вызываю по назначению, и помещаю цифровую строку, к которой я звоню. Так что я сделал в CallingScreenActivity является первым я инициализировать член класса как этотвызывающий метод перед инициализацией члена класса
private boolean serviceConnected = false;
private ISipService service;
private ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
service = ISipService.Stub.asInterface(arg1);
try {
// Log.d(THIS_FILE,
// "Service started get real call info "+callInfo.getCallId());
Log.e("onservice connected", "on service connected");
serviceConnected = true;
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
Log.e("service disconnected", "desconnected service ");
serviceConnected = false;
}
};
тогда я привязки службы в OnCreate(), как это:
bindService(new Intent(this, SipService.class), connection, Context.BIND_AUTO_CREATE);
и, наконец, получить номер от намерения и вызова метод:
private void placeCallWithOption(String number) {
if (service == null) {
Log.e("servcie is null ", "service is null");
return;
}
try {
service.makeCallWithOptions(num, 1, null);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Теперь моя проблема каждый раз, когда я называю эту деятельность, чтобы сделать вызов он вызывает метод placeCallWithoutOption первый и сервис Conne cted позже, поэтому каждый раз, когда он печатает , услуга равна нулю в методе и возвращается затем подключена услуга в соединенном сервисе. Как мне это сделать, пожалуйста, помогите ..
это правильно использовать ?? как в onserviceConnected на самом деле я am инициализировать переменную класса –
проверить мои измененные ans –