服务不正常

时间:2016-02-23 21:06:20

标签: android android-intent android-service logcat

我应该在我的服务类中添加一个计时器,每隔10秒向LogCat输出一条消息。一旦我调用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();
    }
}
}

以下是我在Manifest中注册服务的方法(在服务元素中,它不会让我完全输入它)

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

1 个答案:

答案 0 :(得分:0)

package名称不匹配。您的murach声明中的Manifest字词中存在拼写错误。