Где вызвать stopService (), чтобы убедиться, что служба остановлена? - PullRequest
1 голос
/ 28 апреля 2011

Мне известно много вопросов о том, как остановить службу, которые задавались ранее, но я не нашел ни одного, касающегося моей конкретной проблемы.

В моем приложении есть ряд действий, связанных с одной центральной службой. Для каждого действия я вызываю bindService () в их методах onResume () и unbindService () в их методах onPause (). Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я переключаюсь между двумя действиями, сервис уничтожается, а затем воссоздается с нуля.

Чтобы решить эту проблему, я рассмотрел вызов startService () в onCreate (), чтобы убедиться, что служба остается активной.

У меня вопрос: куда мне поместить stopService () - метод, чтобы он вызывался при выходе из приложения? Или, в качестве альтернативы, есть ли другой способ сохранить службу работающей, когда я переключаюсь между двумя действиями, не полагаясь на startService ()?

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011

См. android service startService () и bindService () для полного ответа.

1 голос
/ 18 октября 2015

вот как я могу остановить и запустить сервис
проверьте эту ссылку для более подробной информации.

public void onClick(View src) {
    switch (src.getId()) {
        case R.id.buttonStart:
            Log.d(TAG, "onClick: starting srvice");
            startService(new Intent(this, MyService.class));
            break;
        case R.id.buttonStop:
            Log.d(TAG, "onClick: stopping srvice");
            stopService(new Intent(this, MyService.class));
            break;
    }
}

и в классе услуг:

public class MyService extends Service {
    private static final String TAG = "MyService";


    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onCreate");


    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onDestroy");

    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onStart");

    }
}

СЧАСТЛИВОЕ КОДИРОВАНИЕ!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...