2016-02-23 16 views
0

Я должен добавить таймер в свой класс обслуживания, который печатает сообщение в LogCat каждые 10 секунд. Ничто в классе службы не печатает, как только я вызываю метод startService, и я понятия не имею, почему .. Любые идеи?Служба не работает должным образом

package com.murach.reminder; 

import android.content.Intent; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 

public class ReminderActivity extends Activity implements OnClickListener { 

private Button startServiceButton; 
private Button stopServiceButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_reminder); 

    startServiceButton = (Button) findViewById(R.id.startServiceButton); 
    stopServiceButton = (Button) findViewById(R.id.stopServiceButton); 

    startServiceButton.setOnClickListener(this); 
    stopServiceButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    Intent serviceIntent = new Intent(this, ReminderService.class); 
    switch (v.getId()) { 
     case R.id.startServiceButton: 
      // put code to start service and display toast here 
      startService(serviceIntent); 
      Toast.makeText(this, "Service started", Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.stopServiceButton: 
      // put code to stop service and display toast here 
      stopService(serviceIntent); 
      Toast.makeText(this, "Service stopped", Toast.LENGTH_SHORT).show(); 
      break; 
    } 
} 
} 

package com.murach.reminder; 

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

import java.util.Timer; 
import java.util.TimerTask; 

public class ReminderService extends Service 
{ 
private Timer timer; 

public void onCreate() 
{ 
    Log.d("Reminder", "Service created"); 
    startTimer(); 
} 

@Override 
public IBinder onBind(Intent intent) 
{ 
    Log.d("Reminder", "No binding for this activity"); 
    return null; 
} 

public void onDestroy() 
{ 
    Log.d("Reminder", "Service destroyed"); 
    stopTimer(); 
} 

private void startTimer() { 
    TimerTask task = new TimerTask() { 

     public void run() { 
      Log.d("Reminder", "Timer task executed"); 
     } 
    }; 

    timer = new Timer(true); 
    int delay = 1000 * 10; 
    int interval = 1000 * 10; 
    timer.schedule(task, delay, interval); 
} 

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

А вот как зарегистрировать службу в манифесте (в элементе обслуживания, он не позволил бы мне напечатать его полностью)

android:name="com.murach.reminder.ReminderService" 

ответ

0

package имена не совпадают. В вашем объявлении Manifest есть орфографическая ошибка в слове murach.

+0

О, крики. Я исправил это, но у меня все еще такая же проблема. В журнале нет ничего – Sam

Смежные вопросы