为什么我的服务在安卓系统中不起作用?(我只想记录一些东西5秒)

2022-09-02 22:24:30

我创建了一个名为 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中放置了一个断点...但它甚至没有击中。它也不是日志记录。

编辑:“无法启动服务 Intent { cmp = com.examples.hello/.您好服务 }: 未找到”

那是什么意思?...我创建了HelloService.java与其他所有内容都放在同一位置...


解决。我修复了清单文件。谢谢尼古拉·斯米利亚尼奇

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

自:

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

答案 1

也许你没有在你的最机动中声明服务。无论如何,你用错了类。您必须使用 AlarmManager 对事件进行编程。看到那个链接,它对我来说非常有用。

使用 alarmManager 和服务仅在特定时间段内执行计划通知


答案 2

一个服务与任何其他Android应用程序一样具有生命周期。因此,您的服务可能会被系统终止(请参阅服务文档)。实现这一点的正确方法是使用警报管理器,Android服务停止中所述。