Почему мой сервис не работает в Android? (Я просто хочу записать что-нибудь когда-либо 5 секунд) - PullRequest
18 голосов
/ 15 февраля 2010

Я создал новый класс под названием HelloService. Я добавил это в Android manifest.xml.

public class HelloService extends Service {
    private Timer timer = new Timer();
    private long INTERVAL = 5000;

    public void onCreate() {
        super.onCreate();
        startservice();

    }

    private void startservice() {
        timer.scheduleAtFixedRate( new TimerTask() {
            public void run() {
                Log.d("servy", "This proves that my service works.");
            }
        }, 0, INTERVAL);
    ; }

    private void stopservice() {
        if (timer != null){
            timer.cancel();
        }
    }

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

Моя другая деятельность называет это так:

    Intent helloservice = new Intent(this, HelloService.class);
    startService(helloservice);

По какой-то причине я установил точку останова в моем новом HelloService ... но он даже не срабатывает. Это тоже не логирование.

Edit: "Невозможно запустить службу Intent {cmp = com.examples.hello / .HelloService}: не найдено"

Что это значит? ... Я создал HelloService.java там же, где и все остальное ...


решаемая. Я исправил свой файл манифеста. Спасибо Никола Смилянич

<service android:name=".HelloService"/>

до:

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

Ответы [ 5 ]

7 голосов
/ 14 декабря 2011

Может быть, вы не объявляете службу в своем манифесте. В любом случае вы используете не тот класс. Вы должны использовать AlarmManager для программирования событий. Посмотрите эту ссылку, это было очень полезно для меня.

Используйте alarmManager и службу для выполнения уведомлений по расписанию только в течение определенного периода времени

3 голосов
/ 09 сентября 2012

Сервис имеет жизненный цикл, как и любое другое приложение для Android. По этой причине может случиться так, что ваша служба будет убита системой (см. Документацию Service ). Правильный способ реализовать это - использовать Alarm Manager , как описано в Служба Android останавливается .

1 голос
/ 15 сентября 2011

Попробуете ли вы это:

helloservice.setComponent(new ComponentName
                 (*hello service package name goes here*, 
                                *hello service canonical name goes here*));
startService(helloservice);
0 голосов
/ 14 декабря 2011
0 голосов
/ 14 декабря 2011

Объявите свой сервис в файле mainfest.xml вашего проекта.

<services  android:name=".SMSReceiver" android:enabled="true">
          <intent-filter>
                  <action android:name=/>
         </intent-filter>
 </services>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...