我有一个名为Service
的安卓MyService
。
我有一个Activity
,有两个按钮(启动服务/停止服务)。
当用户点击“开始服务”按钮时,使用
启动MyService
startService(new Intent(this, MyService.class));
当用户点击“停止服务”按钮时,使用
停止MyService
stopService(new Intent(this, MyService.class));
在MyService
我创建了Thread
T
,执行一些长时间运行的任务。
我的问题是:如果Service
被销毁,即使T
仍在运行,{{1}}也会被销毁吗?
答案 0 :(得分:2)
不,结束您明确创建的线程不是Android框架的责任。您需要扩展onDestroy()
。以下是此方法的javadoc:
由系统调用以通知服务它已不再使用且正在被删除。该服务应该清理它所拥有的资源(线程,注册接收器等)。返回后,将不再有对此Service对象的调用,它实际上已经死了。不要直接调用此方法。
我还建议你让线程使用Interrupts,以便你可以优雅地结束它。