android 上手维修设备和推断启动服务

android 上手维修设备和推断启动服务

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

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

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


1.依据ACTIVITY_SERVICE获取系统服务

activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

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

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

效果图:

android 上手维修设备和推断启动服务

实例代码例如以下

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>



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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116944.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SVN汉化包安装后无效果(已解决)「建议收藏」

    SVN汉化包安装后无效果(已解决)「建议收藏」SVN汉化包安装后无效果(已解决)上图是我下载的SVN客户端的版本。下图是汉化包版本然后我就按部就班的一步一步安装,但始终不能设置语言为中文后来才知道是版本不对,汉化包和客户端版本要一致才行。最后我重新下了一个版本的汉化包再安装(我就把汉化包下载在桌面上,然后点击安装的),问题解决。如下图:相关链接SVN客户端下载地址:https://tortoisesvn.net/downloa…

    2025年7月24日
    5
  • 使用 Groovy 模板进行 MVC 编程

    使用 Groovy 模板进行 MVC 编程 视图是MVC编程的一个重要部分,而MVC编程本身又是企业应用程序开发的一个重要组件。在这篇实战Groovy的文章中,AndrewGlover向您介绍了Groovy的模板引擎框架是如何用来简化视图编程的,并如何使您的代码更加经久容易维护。 在最近的实战Groovy系列中,我们已经介绍过Groovy是构建报表统计程序的一个非常好的工具。我们使用了一个校验

    2022年6月5日
    58
  • mysql数据库SQL查询语句SELECT详细查询(超详细)「建议收藏」

    mysql数据库SQL查询语句SELECT详细查询(超详细)「建议收藏」常规查询查询所有字段:select*from表名;查询指定字段:select列1,列2,…from表名;使用as给字段起别名:select字段as名字….from表名;查询某个表的某个字段:select表名.字段….from表名;可以通过as给表起别名:select别名.字段….from表名as别名;消除重复行:distinct字段条件查询㈠比较运算符:>,<,>=,<=,=,!=,

    2022年5月18日
    42
  • mysql8msi安装教程(数据库mysql安装教程)

    来看这篇文章的肯定是小白,好巧,我也是。。。。。。。废话不多说,先去官网(https://dev.mysql.com/downloads/mysql/)下载mysql。(国外网址,页面可能较慢)往下拉等页面跳转之后,开始选择下载接着下载。。。。ok,下载阶段结束,去安装吧。打开安装程序,同意安装协议。来到这里选择默认,一路傻瓜next;我们选择…

    2022年4月11日
    44
  • eclipse环境的搭建以及JDK的安装步骤详细[通俗易懂]

    java学习之旅java开发环境:eclipse可以从这里下载链接:https://pan.baidu.com/s/1yPTV4UrAyWnc12NbAIj-MA密码:bnma安装步骤如下:从上链接获取压缩包下载到电脑之后,解压,此时的eclipse是打不开的,需要安装JDK和JRE,jdk的详细安装步骤在下面出现以下情况都是因为还没有安装JDK的原因:…

    2022年4月8日
    44
  • 《语音信号处理》整理[通俗易懂]

    reference《spokenlanguageprocessing》1语音基础 名词解释 pitch音调以HZ为单位基频又称音高能量又称音强说话的声音(声带震动)和其他声音相比,有独特的时域和频域模式。声带的震动产生基频(fundamentalfrequency),口腔共振(thepharyngealandoralresonancecav…

    2022年4月3日
    405

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号