Я делаю приложения с Linphone библиотеки, у меня есть код, чтобы бросить исключение в MainActivity так:Основная деятельность Instance иногда Бросьте Run Time Exception «LinphoneActivity не инстанцирован еще»
private static MainActivity instance;
public static final boolean isInstanciated() {
return instance != null;
}
public static final MainActivity instance() {
if (instance != null) {
return instance;
}
throw new RuntimeException("LinphoneActivity not instantiated yet");
}
экземпляра метод будет использоваться в другой деятельности (IncomingCallActivity и контактные данные деятельности)
Входящий вызов активности запустит, если есть вызов к телефону
if (!LinphoneManager.getInstance().acceptCallWithParams(mCall, params)) {
// the above method takes care of Samsung Galaxy S
Toast.makeText(this, R.string.couldnt_accept_call, Toast.LENGTH_LONG).show();
} else {
if (!MainActivity.isInstanciated()) {
return;
}
final LinphoneCallParams remoteParams = mCall.getRemoteParams();
if (remoteParams != null && remoteParams.getVideoEnabled() && LinphoneManager.getInstance().isAutoAcceptCamera()) {
MainActivity.instance().startVideoActivity(mCall);
} else {
MainActivity.instance().startIncallActivity(mCall);
}
}
ContactDataActivity запустит, если пользователю выбрать меню контакта
private void doCall(String number) {
Log.d(TAG, "try to call here: " + number);
if (Account.isPrepaidRegistered()) {
MainActivity.instance().requestToCall(number);
} else {
Intent intent = new Intent(ContactDataActivity.this, PrepaidRegisterActivity.class);
startActivity(intent);
}
}
Где каждый из этой деятельности необходимо вызвать экземпляр MainActivity для вызова метода в MainActivity к requestcall или выезд.
некоторое время при запуске приложения, LogCat покажет:
java.lang.RuntimeException: LinphoneActivity еще не инстанцирован
Это просто нормально, или есть что-то случилось с моим кодом ?
Где вы называете метод 'instance()'? – Ircover
В другом действии (операция входящего вызова), например: if (! MainActivity.isInstanciated()) { \t \t \t возвращение; \t \t \t} \t \t \t конечного LinphoneCallParams remoteParams = mCall.getRemoteParams(); \t \t \t если (remoteParams = NULL && remoteParams.getVideoEnabled() && LinphoneManager.getInstance() isAutoAcceptCamera (!).) { \t \t \t \t MainActivity.instance() startVideoActivity (MCALL). \t \t \t} еще { \t \t \t \t MainActivity.instance() startIncallActivity (MCALL). \t \t \t} – Redturbo