如何让android的service一直在后台运行
1个回答
展开全部
Started Service的生命周期:
onCreate():创建服务
onStartCommand():服务开始运行(在2.0以前版本中,使用onStart()回调方法)
onDestroy() :服务被停止
【详细说明:】
在程序中调用:context.startService() 会触发执行Service生命周期中的onCreate()、onStartCommand()回调方法,此时服务就开始正式运行;
如果Service还没有运行,则android先调用onCreate()然后调用onStartCommand();如果Service已经运行,则只调用onStartCommand(),所以一个Service的onStartCommand方法可能会重复调用多次;
如果在程序中调用:context.stopService()会触发执行Service生命周期中的onDestroy()回调方法,会让服务停止;
stopService()的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService()的话,Service会一直在后台运行。该Service的调用者再启动该Service后可以通过stopService关闭Service;stopSelf()
所以StartService的生命周期为:onCreate --> onStartCommand(可多次调用) --> onDestroy。
Service运行在后台,它是不可见的、无界面的程序 Service运行在主线程中;最好在Service中启动新线程来运行耗时的任务
onCreate():创建服务
onStartCommand():服务开始运行(在2.0以前版本中,使用onStart()回调方法)
onDestroy() :服务被停止
【详细说明:】
在程序中调用:context.startService() 会触发执行Service生命周期中的onCreate()、onStartCommand()回调方法,此时服务就开始正式运行;
如果Service还没有运行,则android先调用onCreate()然后调用onStartCommand();如果Service已经运行,则只调用onStartCommand(),所以一个Service的onStartCommand方法可能会重复调用多次;
如果在程序中调用:context.stopService()会触发执行Service生命周期中的onDestroy()回调方法,会让服务停止;
stopService()的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService()的话,Service会一直在后台运行。该Service的调用者再启动该Service后可以通过stopService关闭Service;stopSelf()
所以StartService的生命周期为:onCreate --> onStartCommand(可多次调用) --> onDestroy。
Service运行在后台,它是不可见的、无界面的程序 Service运行在主线程中;最好在Service中启动新线程来运行耗时的任务
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |