【菜鸟之路】尝试Service处理耗时任务

本文介绍了如何在Android应用中使用Service,特别是IntentService,来处理耗时任务。作者指出,直接在Activity中开启线程可能会因用户退出或广播接收器生命周期短而导致任务中断。相比之下,IntentService能自动创建工作线程,依次处理Intent,且在所有请求完成后自动停止,避免了主线程阻塞和多线程管理的问题。
摘要由CSDN通过智能技术生成

最近做练习项目的时候发现,有很多像数据库操作这样的耗时操作,之前是在单个activity里面开个线程出来,感觉这样太麻烦,不便重复使用相同功能。所以想在单独的Service组件里面放置这些耗时操作。所以就在项目里第一次试用一下–。

首先,Service是Android四大组件中的一个,它和Activity非常相似,也有自己的生命周期,但不和用户交互,而是长时间留驻在后台运行,它与线程Thread没什么关系–(完全不同的东西)。
同样,Service也要在AndroidManifest中配置。

Service的一系列生命周期方法:

 IBinder onBind(Intent intent)——必须实现的方法,绑定该service时回调该方法
 void onCreate()——Service被创建时回调该方法
 void onDestroy()——Service被关闭之前回调该方法
 int onStartCommand(Intent intent, int flags, int startId)——Service被启动时回调该方法
 boolean onUnbind(Intent intent)——Service被断开连接时回调该方法  

程序中运行Service的方法:
~1.通过Context的StartService()方法,该方法,访问者和Service无关联,访问者退出,Service也仍然运行,调用Context的StopService()关闭。
~2.通过Context的bindService()方法,访问者和Service绑定。

 1方法,Service和调用者没有太大关联,如果二者之间需要进行方法调用或交换数据,应该用方法二绑定Service

方法二完整方法签名:
BindService(Intent service,ServiceConnection conn,int flags)

~通过intent指定要启动的service;
~ServiceConnection监听访问者和Service之间连接情况。连接成功调用onServiceConnected(ComponentName name,IBinder service)方法,宿主异常中止时调用onServiceDisconnected(Co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值