下载链接:http://download.csdn.net/detail/a123demi/7511823

我们经常在开发的时候,通过获取系统已启动的服务来推断该server是否还须要再启动。

而本文将介绍android设备中已启动的服务,并推断某一服务是启动

1.依据ACTIVITY_SERVICE获取系统服务

activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

2.获取系统中正在执行的服务

runningList = activityManager.getRunningServices(30);//代表我们希望返回的服务数目大小 30

效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEyM2RlbWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

实例代码例如以下

1) activity_main.xml

<span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" > <Button
android:id="@+id/service_btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/get_all_service" /> <TextView
android:id="@+id/display_service_tv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp"
android:text="@string/display_all_service"
android:textColor="#FF0000" /> </LinearLayout></span>

2).strings.xml

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?

>
<resources> <string name="app_name">AndroidServiceDemo</string>
<string name="display_all_service">显示全部服务:</string>
<string name="action_settings">Settings</string>
<string name="get_all_service">获取全部服务</string> </resources></span>

3)MainActivity.java

<span style="font-size:18px;">package com.example.androidservicedemo;

import java.util.List;

import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView; public class MainActivity extends Activity {
private TextView displayAllServiceTv;
private Button getAllServiceBtn;
private ActivityManager activityManager;
private List<ActivityManager.RunningServiceInfo> runningList;
private String myServiceClassName = "org.linphone.LinphoneService";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); final String defaultStr = this.getResources().getString(R.string.display_all_service);
displayAllServiceTv = (TextView) this.findViewById(R.id.display_service_tv);
getAllServiceBtn = (Button) this.findViewById(R.id.service_btn); getAllServiceBtn.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
StringBuffer displaySb = new StringBuffer();
displaySb.append(defaultStr).append("\n");
activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
runningList = activityManager.getRunningServices(30);//代表我们希望返回的服务数目大小 30 displaySb.append(myServiceClassName).append(":").append(myServiceIsStart(runningList,myServiceClassName)).append("\n"); displayAllServiceTv.setText(getAllService(runningList,displaySb).toString()); } });
} private boolean myServiceIsStart(List<ActivityManager.RunningServiceInfo> runningList,String myServiceClassName){
boolean isStart = false;
for(ActivityManager.RunningServiceInfo runningService:runningList){
if(myServiceClassName.equals(runningService.service.getClassName())){
isStart = true;
break;
}
}
return isStart;
} private StringBuffer getAllService(List<ActivityManager.RunningServiceInfo> runningList,StringBuffer displaySb){
for(ActivityManager.RunningServiceInfo runningService:runningList){
displaySb.append(runningService.service.getClassName()).append("\n");
}
return displaySb;
} @Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} }
</span>

版权声明:本文博主原创文章。博客,未经同意不得转载。

android 上手维修设备和推断启动服务的更多相关文章

  1. Android 4.0关于开机启动服务

    针对使用App应用管理强制停止的App,重启系统后不能收到开机启动, 需要运行一次后,在下次再启动时,才可以正确收到.

  2. Android系统Surface机制的SurfaceFlinger服务的启动过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8022957 在前面一篇文章中,我们简要介绍了A ...

  3. Android Service总结03 之被启动的服务 -- Started Service

    Android Service总结03 之被启动的服务 -- Started Service 版本 版本说明 发布时间 发布人 V1.0 添加了Service的介绍和示例 2013-03-17 Sky ...

  4. android startservice无法启动服务

    1.android startservice无法启动服务 之前MainActivity.java中启动service源代码如下: private void startMyService() { //启 ...

  5. 【android学习1】:安装MySQL启动服务失败解决方法

    最近需要用到MySQL,从官网上下载了一个安装文件,但是安装时一直弹出如下提示信息: Configuration of MySQL Server 5.7 is taking longer than e ...

  6. Android中Service通信(一)——启动Service并传递数据

    启动Service并传递数据的小实例(通过外界与服务进行通信): 1.activity_main.xml: <EditText android:layout_width="match_ ...

  7. Android Service完全解析,关于服务你所需知道的一切(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A ...

  8. 10月9日Android学习笔记:活动与服务之间的通信

    最近在照着<第一行代码>这本书来学安卓,顺便记下笔记.主要的内容是Android中服务的第二种启动方式,通过活动绑定服务来启动服务,实现活动与服务之间的通信. 一. 首先创建一个服务类 p ...

  9. Android service ( 一 ) 三种开启服务方法

    一. Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟 Activ ...

随机推荐

  1. TestApe - Unit testing for embedded software

    TestApe - Unit testing for embedded software About this site Welcome - This site is TestApe.com. Mos ...

  2. 为什么使用 React? Edit on GitHub

    为什么使用 React? React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库.很人多认为 React 是 MVC 中的 V(视图). 我们创造 ...

  3. windows服务的创建、安装和调试

    1.创建 windows服务 项目   文件 -> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服 ...

  4. Django写的投票系统1(转)

    当然主要是从django的帮助文档里面来的,权当是翻译吧 这个投票系统的主要功能有 1.一个前台页面,可以让用户来投票 2.一个管理员页面,可以用来添加.修改.删除投票 首页第一步要确定你已经安装了D ...

  5. Android网络编程http派/申请服务

    最近的研究Android网络编程知识,这里有一些想法,今晚学习.与您分享. 在实际的应用程序的开发非常需要时间appserver请求数据,那么app怎样发送请求呢?以下的代码就是当中的一种情况.使用H ...

  6. DEDE使用AJAX无刷新提交Form表单,PHP返回结果

    $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar)  VALUES (NULL, 0 $addvalue); ...

  7. 国内云存储对比: 阿里云、腾讯云、Ucloud、首都在线

    阿里云的数据存储<http://www.aliyun.com/product/rds/> RDS — 关系型数据库服务(Relational Database Service,简称RDS) ...

  8. Base64实现android端图片上传到server端

    首先要下载Base64.java文件http://iharder.sourceforge.net/current/java/base64/ 将代码复制到project中. 然后上代码: android ...

  9. pygame系列_游戏中的事件

    先看一下我做的demo: 当玩家按下键盘上的:上,下,左,右键的时候,后台会打印出玩家所按键的数字值,而图形会随之移动 这是客观上面存在的现象. 那么啥是事件呢? 你叫我做出定义,我不知道,我只能举个 ...

  10. 在TextView中加入图片

    TextView是一个非常强大的控件,有时须要在一个控件中同一时候显示图片和文字,使用TextView非常easy实现. 方法一: 聊天软件比方QQ一般都会有发送表情的功能,使用SpannableSt ...