Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
alex-rudenkiy
5 / 5 / 12
Регистрация: 02.01.2013
Сообщений: 432
#1

Как сохранить Service? - Программирование Android

10.08.2016, 18:47. Просмотров 150. Ответов 0
Метки нет (Все метки)

Подскажите пожалуйста, как сохранить Service, а точнее ссылку на Service и присоединённый из основного Activity в Service Callback? Это мне приходится делать из-за того что при смене ориентации экрана Activity создаётся заново и естественно все переменные обнуляются и ссылка на мой Service

Собственно вот фрагмент отвечающий за Service в Activity :

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Intent intent;
@Override
protected void onStart() {
    super.onStart();
    intent = new Intent(this, Sservice.class);
    bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
 
@Override
protected void onStop() {
    super.onStop();
    if (mBound) {
        unbindService(mConnection);
        mBound = false;
    }
}
 
private ServiceConnection mConnection = new ServiceConnection() {
 
    @Override
    public void onServiceConnected(ComponentName className,
                                   IBinder service) {
        Sservice.LocalBinder binder = (Sservice.LocalBinder) service;
        mService = binder.getService();
        mBound = true;
        mService.setReciever(response);
    }
 
    @Override
    public void onServiceDisconnected(ComponentName arg0) {
        mBound = false;
    }
};
А это у меня код отвечающий за сохранение данных в Bundle для последующего извлечения при завершении поворота экрана.

Java
1
2
3
4
5
6
7
8
9
10
11
12
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    boolean saved = savedInstanceState.getBoolean("connected");
}
 
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putBoolean("connected",mService.connected);
    //savedInstanceState. Вот тут я хотел запихнуть в Bundle ссылку на сервис
    super.onSaveInstanceState(savedInstanceState);
}
Вот это у меня Callback срабатывающий из сервиса (на удивление рабочий) :

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sservice.ResponseCallback response;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
 
    instance = this;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);  
 
    response = new Sservice.ResponseCallback() {
        public void response(String response) {
 
            Log.i("Ура ура","Ok");
 
        }
    };
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2016, 18:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как сохранить Service? (Программирование Android):

Как сохранить состояние Service после перезагрузки телефона?
Как сохранить состояние Service после перезагрузки телефона??? т.е мне нужно...

GPSTracker как Service
Написал приложение, которое определяет местоположение по GPS/WiFi(мобильным...

Как запустить метод из Service?
При запуске сервиса в onCreate запускается метод, когда он отрабатывает...

Как получить context MainActivity в Service?
В MainActivity создаю сервис и startService( SER );, как получить context...

Как передать intent данные в Service?
Здравствуйте! как передать intent данные в класс с расширением Service?...

Как запустить service при входящем вызове?
Есть ли такая возможность разбудить мой сервис при входящем вызове типа...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2016, 18:47
Привет! Вот еще темы с решениями:

Как отследить принудительную остановку service системой?
Как отследить остановку service когда Android его останавливает из- за нехватки...

Как защитится от повторного запуска Service (защита от дурака)?
На вся кий случай хочу проставить защиту. Работает одновременно 4 сервиса и...

Как сделать так, чтобы Service работал после закрытия программы
Здравствуйте! Никак не могу разобраться, как сделать так, чтобы Service...

Как сделать чтобы приложение работало только тогда когда работает Service
Как сделать чтобы приложение работала только тогда когда работает public...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru