博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——推断Service是否已经启动
阅读量:6945 次
发布时间:2019-06-27

本文共 984 字,大约阅读时间需要 3 分钟。

          延续百度地图定位的Demo。採用Service来进行百度定位,并且将数据上传到server上遇到了一个问题:在真机中使用清理内存来关闭程序的之后,Service会被关闭,可是过几秒中,它又会自己主动重新启动。重新启动就算了,并且再次登陆系统的时候,又会开启一个一样的服务,在LogCat中就会看到每次都获取到两次的定位数据。

然后想想能否够在建立Service之前推断这个服务有没有被创建?仅仅要能做这个推断。那么服务存在我们就无论它,假设不存在则创建。本着这个思路,百度发现可行(Service后台服务创建时最好都要推断是否存在),代码例如以下:

private boolean isWorked(String className) {			ActivityManager myManager = (ActivityManager) LoginActivity.this					.getApplicationContext().getSystemService(							Context.ACTIVITY_SERVICE);			ArrayList
runningService = (ArrayList
) myManager .getRunningServices(30); for (int i = 0; i < runningService.size(); i++) { if (runningService.get(i).service.getClassName().toString() .equals(className)) { return true; } } return false; }
推断过程:

if(!this.isWorked("包.服务名")){					Intent intent = new Intent();					intent.setAction("该服务组件的intent-filter的action");					// 启动Service					startService(intent);				}				else{					Log.i("info", "服务已经启动了!

"); }

转载地址:http://bpanl.baihongyu.com/

你可能感兴趣的文章
EOF怎么从键盘输入
查看>>
判断2000年---2500年之间的闰年
查看>>
Navicat11.1连接Mysql8.0报错1251的解决办法
查看>>
destoon6.0知道问答原创模板,给需要的人
查看>>
DbForge Data Compare for SQL Server入门教程:保存和加载数据比较
查看>>
linux文本处理利器之grep
查看>>
CentOS6.7环境下SVN搭建与客户端链接
查看>>
SpringMVC ------处理模型数据
查看>>
第二周作业
查看>>
那些年踏过的Apache Flume之路
查看>>
Rancher Pipeline发布:开源、极简、强大的CI/CD
查看>>
BGP协议原理及配置3-路由聚合
查看>>
LVM讲解
查看>>
JS闭包导致循环给按钮添加事件时总是执行最后一个
查看>>
ECharts - 图表
查看>>
Java学习lesson 04
查看>>
解决“无法解析的外部符号 __imp___CrtDbgReportW”
查看>>
国内BIM案例VS国外BIM案例
查看>>
nmap
查看>>
JAVA的内存模型及结构
查看>>