ServiceConnection接口的使用

news/2024/7/3 9:13:45 标签: android
首先是Service的周期问题 
The service will at this point continue running until Context.stopService() or stopSelf() is called. Note that multiple calls to Context.startService() do not nest (though they do result in multiple corresponding calls to onStartCommand()), so no matter how many times it is started a service will be stopped once Context.stopService() or stopSelf() is called 
上面是android的HP上写的关于Service周期的一段话,是说,Service在开始以后,除非调用了Context.stopService()或者stopSelf(),否则不会停止。当然如果内存不足,系统可能自动杀死Service。 


下面是关于ServiceConnection接口的: 
private ServiceConnection conn = new ServiceConnection() {

		@Override
		public void onServiceDisconnected(ComponentName name) {
			// TODO Auto-generated method stub
			
			mService = null;
			
		}

		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			// TODO Auto-generated method stub
			mService = IBindService.Stub.asInterface(service);
			
		}
	};
貌似现在的主流写法是这样。下面的代码的bindService method执行之后会自动调用上面ServiceConnection接口里的onServiceConnected method 
				Intent intent = new Intent(IBindService.class.getName());
				bindService(intent, conn, BIND_AUTO_CREATE);

人会想,如果执行unbindService之后不就自动调用ServiceConnection接口里的onServiceDisconnected method了吗。 

其实不然,查看api,你会发现,ServiceConnection接口里德onServiceDisconnected method只会在Service被停止或者被系统杀死以后调用。 

也就是说你执行unbindService 只是告诉系统你已经和这个服务没有关系了。系统在内存不足的时候可以优先杀死这个服务而已。 

http://www.niftyadmin.cn/n/1335562.html

相关文章

Mysql自动按月表分区

很久没有碰DB了。最近需要做一个日志表,因此重新拾了下。实现了下自动按月表分区 开发环境为Mysql 5.7.28 参考资料: Mysql分区表及自动创建分区Partition(按日) 核心的两个存储过程: auto_create_partition为创建表…

小程序创业最后的红利期

从 2017 年初,微信创始人张小龙宣布小程序正式上线开始,很多行业都在摸索着开发小程序,且取得了不错的成绩,小程序已经生长出一个相对完整的生态圈。 在这个生态圈内,基于去中心化的特点,依托微信入口省去了…

怎么把avi格式转换成mp4?用电脑转换avi格式的方法

提起视频格式相比大家首先想到的就是mp4格式,而往往容易忘记avi格式。而mp4格式相比avi格式由于其占用内存相对较小且兼容性相对较高的特点而成为无人不晓的视频格式。因此很多人想把占用内存相对较大的avi格式转换成mp4。下面小编就教你用迅捷视频转换器把avi格式转…

LinuxX86中打印堆栈的简易使用说明

在某些多路径的函数(例如退出),我们希望通过在日志中打印堆栈,确认调用途径,以定位一些奇怪的业务逻辑问题。 在Linux中,我们可以使用backtrace函数进行追踪。 *Android不支持此方法 1.使用示例 *以下代码…

学习 python 的 pytest 框架需要的基础知识和学习准备

学习 python 的 pytest 框架需要的基础知识和学习准备测试从业者学习 python 应该掌握的内容: 首先是变量和数据类型,其次列表、字典以及 Json 的一些处理,再者就是循环 判断以及函数或类这些内容。 其中的重点: 1.循环判断以及字典这块是重点…

分享5个高质无损音乐网站,歌曲很丰富,爱听歌的小伙伴有耳福了

生活中很多人都离不开音乐,散步的时候听音乐,等待的时候听着音乐,心情不好的时候听音乐,不管走到哪,有音乐的陪伴一点也不寂寞,不同音乐的旋律给我们带来不同的心情,今天小编就给爱听音乐的小伙…

简易DOCKER/K8S使用心得

1. DOCKER安装 1.1 前置环境 首先,如果使用CentOS,你至少需要7.4以上。从内核角度来说,建议使用8.2及以上。 如果是7.4以下的版本,可以通过设置仓库到7.4以上版本,再 yum install centos-release kernel #实际上安装…

动画---分块运动

动画---分块运动 package com.example.test;import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.gra…