android 停止服务方法,android-如何自行停止服务?
我只是遇到了同样的问题。 就我而言,我有一个单例服务管理器,用于与该服务进行通信。 在管理器中,服务是这样启动的:
context.bindService(new Intent(context, MyService.class), serviceConnection, Context.BIND_AUTO_CREATE);
通过按照Alik Elzin的建议删除Context.BIND_AUTO_CREATE,我已经能够使用this.stopSelf()停止服务,并在执行此操作时调用了onDestroy()。 问题是在那之后,我无法使用上面的命令从管理器中重新启动服务。
最后,我通过使用服务中的回调(告诉管理器停止该服务)来解决此问题。 这样,在启动/停止服务时,经理总是负责任,一切似乎都很好。 我不知道这样做是否有任何反指示。
代码真的很简单。 在服务中创建一个回调,并在连接类中在管理器中进行设置:
private ServiceConnection mServiceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
myService = ((MyService.LocalBinder)service).getService();
myService.setCallback(new MyService.MyServiceCallback() {
@Override
public void onStop() {
stopService();
}
});
}
public void onServiceDisconnected(ComponentName className) {
myService = null;
}
};
并停止服务:
public void stopService()
{
if(mServiceConnection != null){
try {
mContext.unbindService(mServiceConnection);
} catch (Exception e) {}
}
mContext.stopService(new Intent(mContext, BleDiscoveryService.class));
}
在服务中,只需在需要停止时调用myCallback.onStop()。
android 停止服务方法,android-如何自行停止服务?相关推荐
- android模拟按键方法,Android随笔之——模拟按键操作的几种方式
前几天转过一篇Android上模拟按键操作.触屏事件的博客,昨天又去找了百度.谷歌了一下,写了一点简单的测试代码,留待不时之需.有需要看之前转载的那篇博客的请看这里→_→转:Android随笔之--使 ...
- android datepicker使用方法,android DatePicker
Date Picker 提供了一个构件去选择一个时间,使用DatePicker构件,该构件允许用户去选择月,日,年在一个界面中. 实例介绍 首先我们应该先创建一个DatePickerDialog,该D ...
- android view使用方法,Android View构造方法第三参数使用方法详解
我们都知道,在Android中要使用一个View,一般会有两种方式: 在XML文件中配置: 直接在代码中new一个View的对象. 我们今天讨论的内容就是围绕着View的构造方法的. 1.实例 首先我 ...
- android返回键方法,Android按返回键(后退键)Back键事件捕获的两种方法
package zhangphil.back; import android.support.v7.app.ActionBarActivity; import android.util.Log; im ...
- android avd 使用方法,Android中Android Virtual Device(AVD)使用教程
AVD的全称为:Android Virtual Device,就是Android运行的虚拟设备,他是Android的模拟器识别.建立的Android要运行,必须创建AVD,每个AVD上可以配置很多的运 ...
- android datepicker使用方法,android中DatePicker和TimePicker的使用方法详解
本文以实例讲述了android中DatePicker和TimePicker的使用方法,具体步骤如下: 下面是实现具体功能的代码,其中main.xml代码为: android:layout_width= ...
- android view使用方法,android – 如何使用getView()方法,它在哪里被调用?
我是Android开发的新手,并且一直遵循Android网站上提供的教程.我目前在视图教程部分,特别是Grid Views: Hello, Grid View Tutorial的教程. 我无法通过适配 ...
- Android代码混淆方法,Android 代码混淆零基础入门
内容提要 本篇文章主要有三个部分,让读者读完后能自己写规则混淆项目 对Android代码怎么开启混淆做一个简单的介绍. 对混淆规则做一个简单介绍: 在混淆过后Crash日志反推代码工具retrace. ...
- android 接口实现方法,Android应用开发之Android 请求网络接口实现方法
本文将带你了解Android应用开发之Android 请求网络接口实现方法,希望本文对大家学Android有所帮助. public class Fragment01 extends Fragmen ...
最新文章
- Basis,去中心化央行?
- Tracetcp/Tcptrace的使用
- Windows下为PHP安装redis扩展
- python qcut_Python之Pandas库学习(三):数据处理
- 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function
- linux 搭建任务队列集群,beanstalkd任务队列 linux平台安装测试
- PostGIS容器运行
- 数组超过预设的最大数组大小_工作表数组大小的扩展及意义
- (26)ESLint一JS代码格式校验
- 10大PHP比特币开源项目
- 简单手绘背景绘画过程-------树!
- Bootstrap入门学习(三)——简单项目
- 适配器模式 - 上厕所案例
- 服务器虚拟机镜像怎么设置ip,风云OL虚拟机镜像一键服务端+配套客户端+启动教程+GM命令+IP修改等...
- 【GitHub】cmder下载地址
- 基于SSM实现的演唱会网上订票系统-JAVA【数据库设计、源码、开题报告】
- arping 命令解析
- CentOS7安装oh-my-zsh(github start Top 10)
- git 学习指南 学习资料笔记
- 史上最拉跨的导线平差程序( by C#)
热门文章
- 仿小米商城和登录的静态页面
- 青村茶舍||“认知障碍干扰计划”社会治理创新活动
- 程序人生 - 关于茶叶的冷知识,不懂这些,千万别说你懂茶!
- 【Codecs系列】x265编码器(三):preset支持工具集和优化分析
- python 3.6.5 java jdk版本_eclipse开发者版本下载-eclipse ide for java developers最新版v3.6.0 pc版 - 极光下载站...
- 用Java语言进行简单的求1-100之间的求偶和,并把求和结果在控制台输出
- 3D场景中HUD的实现
- KPCA、KLPP及两者结合改进的特征提取特征降维算法
- 周记20140216
- 实验二 简单网络命令和wireshark捕获FTP用户名密码