为什么我的服务不能在Android中使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我创建了一个名为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);

我修复了我的清单文件如下:

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

至:

   <service android:name="HelloService"></service>
提问于
用户回答回答于

服务与任何其他Android应用程序一样具有生命周期。出于这个原因,可能会发生您的服务被系统中止(参见服务文档)。实现此目的的正确方法是使用Android服务停止中讨论的Alarm Manager。

用户回答回答于

也许你没有在你的表现中宣布这项服务。无论如何,你正在使用错误的类。你必须使用AlarmManager来编程事件。看到这个链接,这对我非常有用。

扫码关注云+社区