开发者社区> 问答> 正文

请问在服务中是否无法关闭服务呢?

public class MyService extends Service {

    private MyReceiver receiver;


    private class MyReceiver extends BroadcastReceiver {
        public void onReceive(Context context, Intent intent) {
            onDestroy();
        }
    }  

    public void onCreate() {
        super.onCreate();
        Toast.makeText(MyService.this, "服务已启动", Toast.LENGTH_SHORT).show();
    }

    public int onStartCommand(Intent intent, int flags, int startId) {
        receiver=new MyReceiver();
        IntentFilter filter=new IntentFilter();
        filter.addAction("net.s5c.Changelink.wifiOff");
        registerReceiver(receiver, filter);
        flags=START_STICKY;
        return super.onStartCommand(intent, flags, startId);
    }



 public void onDestroy() {
        Toast.makeText(this, "服务已关闭", Toast.LENGTH_LONG).show();//可以打印出这句,但看后台还是无法关闭服务!
        super.onDestroy();
    }

    public IBinder onBind(Intent intent) {
        return null;
    }

}

收到广播后能看到输出的onDestroy()的内容,但看正在运行中服务还是继续运行着,这是怎么回事呢?

展开
收起
爵霸 2016-03-16 13:35:31 2679 0
1 条回答
写回答
取消 提交回答
  • 没有任何作用看了半天也没找到我需要的!

    2019-07-17 19:03:49
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载