Ссылка на класс после изменения ориентации

Я написал общедоступный класс, который обрабатывает связь по сети Ethernet, имеет некоторый поток, который обновляет некоторые переменные.

Основная деятельность взаимодействует с этим классом, получая переменные или отправляя некоторые сообщения. Таким образом, после изменения ориентации поток работает, как я хочу, но основное действие он не может получить данные из "класса Ethernet".

Как я объявляю класс в основной деятельности:

EthIp = новый EthIp(tot_in, tot_out, IP, порт, false);

Начать тему в классе EthIP

Спасибо за помощь...

2 ответа

Решение

Когда ориентация изменилась, ваша деятельность должна была быть воссоздана и создан новый экземпляр класса Ethernet. Вы должны избегать воссоздания активности. изменить свой манифест как...

    <activity android:name=".activity.MainActivity"
        android:configChanges="keyboardHidden|orientation|screenSize">
    </activity>

а затем переопределить onConfigurationChanged() в действии как...

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
}

Помните, что по умолчанию активность уничтожается, а затем создается новый во время изменения ориентации ( ссылка)

Убедитесь, что вы закрыли eth соединение в методе OnClose/OnPause для Activity и что потоки, которые вы создаете, ведут себя соответствующим образом при перезапуске вашей Activity.

Другие вопросы по тегам