Service是应用程序元件之一,它用於背景处理与使用者介面无关的长时间任务,即便切换到其他应用程序也会继续执行,例如:讯息通知、资料下载或音乐播放等。
File→New→Service→Service
输入Service名称後点选Finish
AS会自动产生Service需要的档案,AndroidManifest.xml也会自动增加Service的资讯
在Activity中启动Service,可用intent传入startService()方法,参数为当前Activity与Service
startService(Intent(this, MyService::class.java))
在Activity中关闭Service,可用intent传入stopService()方法。
stopService(Intent(this, MyService::class.java))
Service被启动後执行onCreate(),并呼叫onStartCommand(),当Service需要结束时使用stopSelf(),此时会进入onDestroy()
class MyService : Service() {
//仅在执行时启动
override fun onCreate() {
super.onCreate()
}
//每次启动都呼叫
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
super.onStartCommand(intent, flags, startId)
//终止Service,进入Service类别的onDestroy()
stopSelf()
return super.onStartCommand(intent, flags, startId)
}
override fun onBind(intent: Intent): IBinder?= null
}
onStartCommand()告诉系统如何重启Service,若执行中的Service收到Activity发出startService()请求,会直接执行onStartCommand(),而不会再次执行onCreate()
onStartCommand()第一个参数intent可接收由Activity启动时夹带的资讯,第二个参数flags表示启动服务的方式,第三个参数为启动的识别标签,return须回传整数,且必须是下列三种之一:
>>: 让按钮来个酷动态! 操纵DOM事件:CSS 篇 (二)
今天要来讲讲TypeScript(TS)函式(Function)的剩余参数(Rest Paramet...
废话不多说,直接附上code 影片含有程序码详细解说,若有误再烦请告知,谢谢 library(glm...
codepen ...
Hyperviser源起 (虚拟机, Virtual Machine),好像是这几十年才听到的新名词...
[[Put]] 机制会在我们要赋予 object property 值的时候出现,[[Put]] 机...