android 判断service运行

本文介绍了一种在Android环境中检查特定Service是否正在运行的方法,并提供了具体的Java代码实现。

国内的文章果然是一大抄,像我这样的半路出家的确实也提供不到多少啊,网上查下就马上就有答案了的。
不知道我以后工作的地方,是否是可以上网查资料的,要是不能的话,我岂不是要死了。

先定义下  	private Context mContext;
// 判断service是否在运行
	public  boolean isPushServiceWork() {
		ActivityManager myManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
		ArrayList<RunningServiceInfo> runningService = (ArrayList<RunningServiceInfo>) myManager
				.getRunningServices(30);//30是最大值
		for (int i = 0; i < runningService.size(); i++) {
			if (runningService.get(i).service.getClassName().toString()
					.equals("com.hzilearning.dict.mba.f.service.WordsPushService")) {
				return true;
			}
		}
		return false;
	}
 
Android中,判断Service是否启动完成通常涉及到两个关键步骤:首先,服务需要定义一个内部状态来表示其生命周期;其次,客户端(如Activity或其他Service)需要监听服务的状态变化。 1. **Service内部管理**: Service本身可以维护一个标志位或者状态变量,比如`STARTED`、`STOPPED`等,当服务开始运行时将其设置为`STARTED`。你可以通过重写`onStartCommand()`方法并在其中更新这个状态变量。 ```java public class MyService extends Service { private static final int STARTED = 1; private int currentState = STOPPED; @Override public int onStartCommand(Intent intent, int flags, int startId) { if (currentState == STOPPED) { // 这里执行初始化操作并设置为STARTED currentState = STARTED; // ...其他启动逻辑... } return START_STICKY; // 返回常量,表示持续运行 } // 添加一个公共方法获取当前状态 public synchronized boolean isStarted() { return currentState == STARTED; } } ``` 2. **客户端检查**: 客户端可以在需要的时候检查`MyService`的状态。通常,你会在回调函数或者周期性的检查中调用`isStarted()`方法。例如,在`bindService()`之后: ```java Intent intent = new Intent(context, MyService.class); startService(intent); // 启动服务 // 在绑定Service后,检查服务是否已经启动 MyBinder binder = (MyBinder) bindService(intent, connection, BIND_AUTO_CREATE); if (binder != null && binder.isStarted()) { // 服务已启动,做后续操作 } else { // 等待或重试启动 } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值