Отличный пример обслуживания ставит меня в тупик - PullRequest
0 голосов
/ 10 июня 2011

Я читаю "Pro Android 2", в котором содержится отличный пример службы:

    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    import android.util.Log;

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

        @Override
        public void onCreate() {
            Log.d(TAG, "onCreate");
            super.onCreate();
        }

        @Override
        public IBinder onBind(Intent intent) {
            Log.d(TAG, "onBind");
            return null;
        }
     }

Я также добавил запись определения сервиса как потомок:

    <application> in my AndroidManifest.xml as follows:

    <service android:name="TestService1"></service>

В книге говорится: «Следующий очевидный вопрос - как позвонить в службу?»

И это именно то, что я хочу знать !!! Я просмотрел книгу и не понимаю, как запустить службу. Книга фактически указывает на то, что служба вызывается при запуске. Может быть, я просто неправильно понял эту часть.

Это просто эксперимент, и я просто хочу увидеть, как служба работает, и увидеть сообщения журнала в logcat. В книге говорится: «Система вызывает onCreate () при первом создании службы, но перед вызовом onStart (). Этот процесс, который напоминает процесс создания действия, обеспечивает способ для службы выполнить однократную инициализацию в запуск ".

Хорошо, хорошо, но я не уверен, что делать, чтобы запустить службу, за исключением того, что onCreate () моего основного действия выполняет что-то вроде:

    Intent TestService1 = new Intent(this,com.mydomain.myproject.TestService1.class);
    startActivity(TestService1);

Но когда я делаю это, я получаю сообщение об ошибке: «Приложение ... неожиданно остановилось».

Я думаю, что у этой проблемы есть простое решение, но я слишком прост, чтобы ее увидеть:)

1 Ответ

4 голосов
/ 10 июня 2011

Ты очень близко.Служба не является деятельностью, поэтому вы не можете использовать startActivity для ее запуска.Вместо этого используйте одноименный метод startService.

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