检查服务是不是正在运行[重复]

Posted

技术标签:

【中文标题】检查服务是不是正在运行[重复]【英文标题】:check if service is running [duplicate]检查服务是否正在运行[重复] 【发布时间】:2013-04-04 22:17:56 【问题描述】:

我想在用户强制关闭应用程序后检查服务是否正在运行。我怎样才能做到这一点。 我在广播接收器的 onReceive 中执行此操作。但即使在强制关闭后,它也会显示服务正在运行 Toast。

   boolean isServiceRunning = AppSettings.getServiceRunning(context);       
    if (isServiceRunning)
    
        Toast.makeText(context,"service running", Toast.LENGTH_LONG).show();

     
    else 
       
        Toast.makeText(context,"service stopped", Toast.LENGTH_LONG).show();        
    

【问题讨论】:

你在广播接收器的 onReceive 中表现如何?任何相关代码都会有所帮助。 我已经发布了代码。我到底需要发布什么 【参考方案1】:

试试这个:

public boolean checkRunningService() 
        ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        for (RunningServiceInfo myService : activityManager
                .getRunningServices(Integer.MAX_VALUE)) 
            if ("com.main.YOUR_SERVICE_NAME".equals(myService.service
                    .getClassName())) 
                return true;
            
        
        return false;
    

希望这会有所帮助。

编辑:-

清单文件中的服务应该是这样的:

<service
            android:name="com.main.YOUR_SERVICE_NAME"
            android:enabled="true" />

【讨论】:

getSystemServices() 中的参数是什么。我的意思是要检查我的服务 获取ActivityManager的是android.content.Context.ACTIVITY_SERVICE。 对于愚蠢的问题抱歉。 但显示错误。创建常量 ACTIVITY_SERVICE 我必须在清单文件中注册这个alarmManager吗?

以上是关于检查服务是不是正在运行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查 WPF 应用程序的其他实例是不是正在运行 [重复]

如何检查应用程序的另一个实例是不是正在运行[重复]

在执行之前检查python版本是不是与脚本兼容[重复]

我如何检查运行我的应用程序的 Android 设备是不是在 4.2.2 及更低版本上运行 [重复]

检查Java中服务器上是不是存在路径[重复]

MySQL 触发器在插入后检查是不是没有重复然后运行 ​​sys_exec udf