0

在 android 开发中,我有一个由 Brodcastreceiver 启动的服务,它启动并正确完成了它的任务,但是当我尝试使用 stopself(); 从它的类中停止服务时;它直到执行了 3 次任务才停止,然后在这里停止的是 onStart 服务和 onDestroy(); 的代码:

@Override
    public void onStart(Intent intent, int startid) {
        player.start();
        SystemClock.sleep(30000);
        onDestroy();
    }

    @Override
    public void onDestroy() {
        player.stop();
    this.stopSelf();}   

这是我从 BrodcastReceiver 启动服务时的代码:

Intent intent =new Intent(context,RingService.class);
context.startService(intent);

有没有办法让我的服务在它自己完成任务后立即停止,还是我必须让 BrodcastRecevicer 停止它?

任何解决此问题的帮助或重定向将不胜感激

问候

4

1 回答 1

0

只需在 onStart 结束时调用 stopSelf() 而不是 onDestroy() 调用,并从 onDestroy() 中删除 stopSelf() 调用。

于 2012-05-11T15:52:19.227 回答