我正在运行服务,以便在我的应用程序中每1小时获取通知。
服务肯定每1小时运行一次;我使用Logcat检查了它。
但是,由于我在MainActivity的onResume()
中启动此服务,因此我想检查服务是否已在运行,并且仅在服务未运行时启动它。
我使用了这段代码:
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("com.android.MyApp.MyServices.NotificationsService".equals(service.service.getClassName())) {
return true;
}
}
return false;
}
但我总是得到 false 。
所以我检查了输出service.service.getClassName()
给出了什么。我的服务不在列表中。
是因为我的申请未知吗?或其他什么?
答案 0 :(得分:0)
我知道它有点迟了但这个答案可能会帮助那些正在寻找相同的人。
您是否使用context.startService()
启动了服务?
确保清单文件包含以下内容:
<service android:name="com.android.MyApp.MyServices.NotificationsService" />
答案 1 :(得分:0)
private boolean isMyServiceRunning(Context mContext) {
ActivityManager manager = (ActivityManager) mContext
.getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if (**HERE_YOUR_SERVICE'S_CLASS_NAME**.class.getName().equals(
service.service.getClassName())) {
return true;
}
}
return false;
}
//我有后台GPS服务,我已成功检查我的GPS服务是否正在运行。
//快乐编码......