全国服务热线:0412-998394844
网站公告:
诚信为本,市场在变,诚信永远不变...
全国服务热线:0412-998394844
行业资讯
当前位置: 首页 > 新闻动态 > 行业资讯
澳门新新甫京: Android四大组件:Service
添加时间:2024-06-05
本文摘要:第二组件 Service(一)基础知识1.界说服务,是Android四大组件之一, 属于 盘算型组件2.作用提供 需在后台恒久运行的服务,如:庞大盘算、音乐播放、下载等3.特点无用户界面、在后台运行、生命周期长一个运行在后台执行长时间运行的操作组件,它不提供任何用户界面,作为与Activity同级的组件,它依旧是运行在主线程中(由于是在主线程,所以需开一个线程来执行耗时操作)。

澳门新葡平台网址8883

第二组件 Service(一)基础知识1.界说服务,是Android四大组件之一, 属于 盘算型组件2.作用提供 需在后台恒久运行的服务,如:庞大盘算、音乐播放、下载等3.特点无用户界面、在后台运行、生命周期长一个运行在后台执行长时间运行的操作组件,它不提供任何用户界面,作为与Activity同级的组件,它依旧是运行在主线程中(由于是在主线程,所以需开一个线程来执行耗时操作)。一个组件还可以与一个Service举行绑定来实现组件之间的交互,甚至可以执行IPC(Inter-Process Communication)历程间通信。Service可以在后台执行许多任务,好比处置惩罚网络事务,播放音乐,文件读写或者与一个内容提供者交互,等等。

(二)生命周期1.生命周期常用方法1、4个手动挪用方法startService() 启动服务stopService() 关闭服务bindService() 绑定服务unbindService() 解绑服务2、5个内部自动挪用方法onCreat() 建立服务onStartCommand() 开始服务onDestroy() 销毁服务onBind() 绑定服务onUnbind() 解绑服务2.生命周期方法详细先容1、startService()(1)作用:启动Service服务(2)自动挪用方法:onCreate()、onStartCommand()a)一个Service被sartService多次启用,onCreate()只会挪用一次,onStartCommand()可以多次挪用(=startService()挪用次数)b)onStartCommand()必须返回一个整数=形貌系统因异常(1.内存不足2.历程关闭等)在杀死onStartCommand()后的服务后应该如何继续运行Service中onStartCommand回调四种返回值的区别START_NOT_STICKY:系统在onStartCommand()返回后终止服务,不会重新启动服务。除非有挂起 Intent 要通报,否则系统不会重建服务。

这是最宁静的选项,可以制止在不须要时服务自动重启以及应用能够轻松重启所有未完成的作业时运行服务。START_STICKY:系统在onStartCommand()返回后终止服务,会重新启动服务&挪用onStartCommand(),但不保留已传入的intent。用null intent挪用onStartCommand()。除非有挂起的未发送完的启动服务的intent,会依此继续传入intent。

适用于媒体播放器类似服务,不执行下令,但要一直执行并随时待命。START_REDELIVER_INTENT:系统在onStartCommand()返回后终止服务,会重新启动service&通过通报给服务最后一个intent挪用onstartCommand()。任何挂起的未发送完的intent,会依此传入。

适用于主动执行应该立刻恢复事情的活跃服务,好比下载文件。实例:服务public class MyService extends Service { private static final String TAG = MyService.class.getSimpleName(); @Override public void onCreate() { super.onCreate(); Log.e(TAG, "onCreate"); new Handler().postDelayed(new Runnable() { @Override public void run() { Log.e(TAG, "postDelayed"); // 制造异常,kill 掉该 Service int a = 1 / 0; } }, 3000L); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.e(TAG, "onStartCommand, intent: " + intent + ", startId: " + startId); return Service.START_STICKY_COMPATIBILITY; } @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy() { Log.e(TAG, "onDestroy"); super.onDestroy(); }}123456789101112131415161718192021222324252627282930313233343536测试public class MainActivit。


本文关键词:澳门新葡平台网址8883,8883澳门新莆京老版本,澳门新新甫京

本文来源:澳门新葡平台网址8883-www.mhbjqlxs.com