Почему моя служба не работает в Android? (Я просто хочу, чтобы что-то записывать каждые 5 секунд)

Я создал новый класс HelloService. Я добавил это в манифест Android. 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 в том же месте, что и все остальное...


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

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

в

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

Вы попробуете это:

helloservice.setComponent(new ComponentName
                 (*hello service package name goes here*, 
                                *hello service canonical name goes here*));
startService(helloservice);

Ответ 4

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

<services  android:name=".SMSReceiver" android:enabled="true">
          <intent-filter>
                  <action android:name=/>
         </intent-filter>
 </services>