嗨,我有一个活动和一个服务类从活动开始服务在某一点上,我想启动服务,但在同一点上,我想检查服务是否已经运行,如果是,那么我不想调用启动服务,如果不是,那么我将启动,但我的问题是,我将如何知道服务是否正在运行?
我使用下面的代码,但它不为我工作是任何其他代码,这将帮助我
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if ("TimerService".equals(service.service.getClassName())) {
Toast.makeText(getApplicationContext(), "running", 100).show();
return true;
}
}
Toast.makeText(getApplicationContext(), "not running", 100).show();
return false;
}
这个代码总是显示我没有调谐,即使它正在运行
您不需要检查它是否正在运行。startService()
和stopService()
都将处理相应的状态,因此,如果您调用startService()
而Service
已经在运行,则不会发生任何事情(它将继续运行)。stopService()
也一样。