Service的生命周期

摘要:
2.通过bindService开启的服务,服务开启之后,调用者和服务之间还存在着联系,一旦调用者挂掉了.service也会跟着挂掉.

Service启动的方式1 start:

Activity.startService(intent); 开启

Activity.stopService(intent); 停止

Service的运行的生命周期为:

onCreate(); onStartCommand(); onDestroy();

如果Service已经启动 则不会再调用onCreate();会直接调用onStartCommand();

在当前Activity中启动Service ,可以在另一个Activity中停止Service;

如果当前app关闭,没调用stopService,Service会继续在后台运行;

Service启动方式2 binder:

Activity.bindService(); 绑定

Activity.unbindService(); 解除绑定

Service的生命周期为

onCreate(); onBind(); onUnbind(); onDestroy();

如果当前Activity Finish();关闭后,会自动调用unbindService(),解除绑定;

Service会调用onDestroy();关闭服务;

当两种方式组合使用时

启动:

Activity.startService(intent);

Activity.bindService();

停止:(要调两个方法才能停止Service)

Activity.stopService(intent)

Activity.unbindService();

组合使用启动时

Activity.startService(intent);

Activity.bindService();

如果Service的public boolean onUnbind(Intent intent) 返回true时

调用Activity.unbindService();

下次调用Activity.bindService();时;不会再调用onBInd(); 而是调用onRebind();

Start Service 和Bind Service 的区别 :

1.通过startservice开启的服务.一旦服务开启, 这个服务和开启他的调用者之间就没有任何的关系了.
调用者不可以访问 service里面的方法. 调用者如果被系统回收了或者调用了ondestroy方法, service还会继续存在 。
2.通过bindService开启的服务,服务开启之后,调用者和服务之间 还存在着联系 ,
一旦调用者挂掉了.service也会跟着挂掉 .

免责声明:文章转载自《Service的生命周期》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ajax(省,市,县)三级联动datawindow.net数据窗口卡片设置滚动条位置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android Exception 10(server)' ~ Channel is unrecoverably broken and will be disposed!)

08-11 19:22:35.028: W/MemoryDealer(2123): madvise(0x43e16000, 12288, MADV_REMOVE) returned Operation not supported on transport endpoint08-11 19:22:35.038: W/InputDispatcher(2714)...

Android基础——intent的ComponentName

intent通过ComponentName指定要执行的组件名字,创建一个Activity时就可以用这个方式进行指定 通过Main启动Detail 两个活动的布局 Detail <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas...

android intent 跳转

一、不需要返回值的跳转 Intent intent=new Intent(); intent.setClass(目前的acitivy.this, 目标activity.class); startActivity(intent); 二、需要返回值的跳转 Intent intent=new Intent(); intent.setClass(目前的acitiv...

AlarmManager

AlarmManager 主要管理硬件时钟。 一些与时间相关的应用,如日历,闹钟等需要使用Alarm Manager的服务。Alarm manager功能相对比较简单,相关代码位于frameworks/base/core/jni/server/com_android_server_AlarmManagerService.cppframeworks/base...

android 定时器的使用

1、android中通常是使用AlarmManager来定时启动一个单次或重复多次操作的。具体的说就是我们通过AlarmManager设定一个时间和注册一个intent到系统中,然后在该时间到来时,系统为我们发送一个广播,即执行我们设定的Intent(要执行的操作),通常我们使用 PendingIntent来实现“要执行的操作”,PendingIntent...

Android二维码功能实现

最近二维码真是越来越火了,随便电视上、网络上、商场里,到处都是二维码。而内嵌二维码扫描功能的软件也越来越多,QQ、微信、UC浏览器等等应用都可以对着二维码扫一扫,感觉我们自己的应用里不加上二维码扫描功能,都跟不上时代潮流了。所以今天我就将带着大家一起,在我们自己的程序里加入二维码扫描的功能。 不过,二维码功能如果真要做起来还是非常复杂的,从零开始实现不太现...