为什么这个简单的服务不启动?

我有一个处理程序的服务,必须每5秒在logcat中写入“Hello”。 但它不会在logcat上写任何东西……就像服务没有执行,我在它上面放置了一个断点,并且debugging模式从不停止在断点上。

我开始在我的应用程序的第一个活动的服务,与此:

startService(new Intent(GPSLoc.this, MyServiceNotifications.class)); //enciendo el service 

我确信代码startService被执行,因为它在启动另一个活动之前被调用,而另一个活动启动。

这是我的服务的代码:

 public class MyServiceNotifications extends Service { boolean serviceStopped; private Handler mHandler; private Runnable updateRunnable = new Runnable() { @Override public void run() { if (serviceStopped == false) { createNotificationIcon(); } queueRunnable(); } }; private void queueRunnable() { // 600000 : cada 10 minutos, comprueba si hay nuevas notificaciones y actualiza la // notification BAR mHandler.postDelayed(updateRunnable, 5000); } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { serviceStopped = false; // //////////////////////////////////////MANEJADOR SIMILAR A UN HILO mHandler = new Handler(); queueRunnable(); // ///////////////////////////////////// FIN MANEJADOR } @Override public void onDestroy() { serviceStopped = true; } @Override public void onStart(Intent intent, int startid) { } public void createNotificationIcon() { Log.d("MyServiceNotifications", "Hello"); } } 

你在AndroidManifest.xml声明了这个服务吗?

非常重要:正确写入名称空间 ,例如:

 <service android:name="com.example.data.synchronization.SynchronizationService"/> 

在我之前的AndroidManifest.xml是(错误的):

 <service android:name="com.example.data.SynchronizationService"/> 

没有服务启动没有错误信息

嗨你的代码写入工作正常。 可能是在closures应用程序标记之前忘记清单文件中的以下代码。

 <application> .... <service android:name=".MyServiceNotifications"/> </application> 

在清单中定义时,还需要将“enabled”属性设置为“true”,如下所示:

 <service android:enabled="true" android:name=".MyServiceNotifications" /> 

有关详细信息,请参阅此链接: http : //developer.android.com/guide/topics/manifest/service-element.html

如果使用Xamarin Droid,最简单的方法是将类标记为这样的服务:

 [Service] public class LongRunningTaskService : Service { ... } 

那么就没有必要把它放在AndroidManifest.xml中。