Сервис не начинается - PullRequest
2 голосов
/ 17 июня 2011

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

Похоже, что onCreate() не вызывается.

Мой сервисный код:

public class NeglectedService extends Service {
    public static final String MY_SERVICE = "android.intent.action.MAIN";
    public void onCreate() {
        Toast.makeText(this, "Service onCreate...", Toast.LENGTH_LONG).show();
    }
}

Я даже не получаю сообщение Тоста.

Вот мое действие

startService(new Intent(NeglectedService.MY_SERVICE));

Мой манифест

action android:name="android.intent.action.MAIN"

Ответы [ 3 ]

8 голосов
/ 17 июня 2011

Вы ввели что-то вроде

<service android:name=".subpackagename.ServiceName"/>

в ваш XML-файл манифеста Android?

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

Видя, что NeglectedService.MY_SERVICE - это просто строка, в вашем startService вызове, по сути, вы звоните:

startService(new Intent("android.intent.action.MAIN"));

Очевидно, что это не имеет никакого отношения к вашей конкретной услуге и не то, что вы хотите. Вместо этого либо зарегистрируйте службу для определенных фильтров намерений и включите их в свои намерения, либо вызовите ее по классу:

startService(new Intent(this, NeglectedService.class));
1 голос
/ 17 июня 2011

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

startService( new Intent(this, NeglectedService.class) );

Надеюсь, это поможет!

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