Форум программистов, компьютерный форум CyberForum.ru

Перегрузка функций не срабатывает - Android

Восстановить пароль Регистрация
 
VladXXX
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 7
23.12.2015, 00:30     Перегрузка функций не срабатывает #1
Добрый день.
Разбираюсь в Андроид Студио с одним проектом. И наткнулся на странную особенность: есть базовое активити. В нем функция:
Java
1
protected boolean sendToCrm() { Log.e(TAG, "sendToCrm() dont override!!");  return false; }
У етого активити есть наследник, где єта функция переопределена:
Java
1
2
3
4
5
6
7
8
9
@Override
    protected boolean sendToCrm() {
        Log.i(TAG, "sendToCrm" );
        if (cardData == null) {
            Log.e(TAG, "onCreate; startLoggingLocation; E: cardData == null" );
            return false;
        }
        return cardData.sendToCrm(this);
    }
Так вот, когда запускается проект на слабеньком китайце (API 10), в наследнике переопределенная ф-ция не срабатывает и я вижу в логе : "sendToCrm() dont override!!" Как только подсоединяю планшет (API 19), все работает по всем правилам ООП и вызывается функция-потомок. В чем проблема? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2015, 00:30     Перегрузка функций не срабатывает
Посмотрите здесь:

Android Не срабатывает кнопка меню
Android Не срабатывает onTouchEvent
USB_DEVICE_ATTACHED не срабатывает Android
Android If срабатывает не на 0 а на -1
Перенос строк по \n не срабатывает Android
Android Не срабатывает кнопка на втором экране
Не срабатывает событие OnListItemClick Android
Не срабатывает очистка БД Android
Android OnClickListener не срабатывает пояления imageView
Вспышка срабатывает раньше камеры Android
Android Периодический alarm не срабатывает

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
23.12.2015, 11:55     Перегрузка функций не срабатывает #2
cardData.sendToCrm(this);
как бы намекает что там где-то в коде должен быть еще метод, но с другой сигнатурой

и код на форуме принято помещать в теги, первый день в интернете?
VladXXX
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 7
23.12.2015, 23:51  [ТС]     Перегрузка функций не срабатывает #3
Нашел причину. Она оказалась не в перегрузке ф-ций, а в манифесте.
Проект состоял из библиотеки со своим манифестом и приложения со своим.
Манифест библиотеки со своим активити- лаунчером:
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
<application
        android:name=".BaseBusinessCardReaderApplication"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        <service android:name=".RecognitionService" />
        <service
            android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService"
            android:enabled="true" />
        <activity
            android:name=".MainBaseActivity"
android:label="@string/app_name_base"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>[/JAVA]


А в манифесте приложения было свое активити - LAUNCHER (отличное от библиотечного)
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 <application
        android:name="..........BaseBusinessCardReaderApplication"
        android:label="@string/app_name"
        <service android:name=".............abbyy.ocr4.RecognitionService" />
        <service android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService" android:enabled="true" />
        <activity
            android:name="...........MainBaseCrmActivity"
            android:label="@string/app_name" 
            android:windowSoftInputMode="stateHidden|adjustResize"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

При компиляции, Активити-LAUNCHER библиотеки, замещалась Активити-LAUNCHERом приложения и все работало. Да и теперь работает на новых девайсах. А вот на старых устройствах ета же програма почему-то работает не правильно. Тоесть приложение запускается со стартового активити, прописанного в библиотеке, а не в приложении. Потому я, поначалу, и решил что ф-ции не перегружаются. Приложение стартовало с активити предка. Стоило мне в библиотеке поставить тот же Активити-LAUNCHER, что и в приложении, как все заработало.
Yandex
Объявления
23.12.2015, 23:51     Перегрузка функций не срабатывает
Ответ Создать тему
Опции темы

Текущее время: 07:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru