android 上手维修设备和推断启动服务
下载链接: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 上手维修设备和推断启动服务的更多相关文章
- Android 4.0关于开机启动服务
针对使用App应用管理强制停止的App,重启系统后不能收到开机启动, 需要运行一次后,在下次再启动时,才可以正确收到.
- Android系统Surface机制的SurfaceFlinger服务的启动过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8022957 在前面一篇文章中,我们简要介绍了A ...
- Android Service总结03 之被启动的服务 -- Started Service
Android Service总结03 之被启动的服务 -- Started Service 版本 版本说明 发布时间 发布人 V1.0 添加了Service的介绍和示例 2013-03-17 Sky ...
- android startservice无法启动服务
1.android startservice无法启动服务 之前MainActivity.java中启动service源代码如下: private void startMyService() { //启 ...
- 【android学习1】:安装MySQL启动服务失败解决方法
最近需要用到MySQL,从官网上下载了一个安装文件,但是安装时一直弹出如下提示信息: Configuration of MySQL Server 5.7 is taking longer than e ...
- Android中Service通信(一)——启动Service并传递数据
启动Service并传递数据的小实例(通过外界与服务进行通信): 1.activity_main.xml: <EditText android:layout_width="match_ ...
- Android Service完全解析,关于服务你所需知道的一切(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A ...
- 10月9日Android学习笔记:活动与服务之间的通信
最近在照着<第一行代码>这本书来学安卓,顺便记下笔记.主要的内容是Android中服务的第二种启动方式,通过活动绑定服务来启动服务,实现活动与服务之间的通信. 一. 首先创建一个服务类 p ...
- Android service ( 一 ) 三种开启服务方法
一. Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟 Activ ...
随机推荐
- Jetty:配置连接器
连接器配置概览 连接器用于接收网络连接,配置一个连接器须要配置: 1)连接器的网络參数(比如:port): 2)连接器使用的服务(比如:executors,schedulers). 3)为接收连 ...
- html练习(5)
这个练习主要简单的展示了据对定位和相对定位: 在此说下html的定位: 1.static定位 这个是默认的方式.对static而言.left和right是不生效的. 2.relative定位(相对定位 ...
- MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVVAxOT ...
- WPF案例 (五) 对控件界面使用倒影
原文:WPF案例 (五) 对控件界面使用倒影 在这个程序里对5个2D控件界面应用了垂直倒影,边缘模糊化和模型变换,在本例中,这5个2D控件为Border, 各包含了一幅Image,界面如下图所示,源码 ...
- 3p
哈,不要自卑.爱情和婚姻可遇不可求,缘到自然成.首要的是人好,容貌別太差,毕竟天天在一起看着要舒心才好,另外应该有上进心,避免势利小人.这些,都要看机缘.所谓right person at right ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part2
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part2(P43~80),代码运行结果请參见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MA ...
- UIView详解2
第三.Configuring the Event-Related Behavior 1. userInteractionEnabled property A Boolean value that ...
- Wooden Sticks(杭州电1051)
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Qt Creator 代码自动补全设置
Qt Creator具有自己的代码补全快捷键[Ctrl]+[Space] 但是在使用过程中,效果不明显,或者没有效果.可能是与输入法的切换冲突了.因此可以通过设置,避免这个问题. 解决方法: 1.打开 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block 开发人员经常编写需要安全功能的应用程序.这些应用程序 ...