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

我有一个处理程序的服务,必须每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"); } } 

  • 如何将图像视图的坐标转换为位图的坐标?
  • 如何在android XML中连接多个string?
  • Android:使用恩智浦MiFare Ultralight C进行身份validation
  • Android Activity作为对话框
  • CardView在Android L中不显示阴影
  • 不能把双SharedPreferences
  • 如何在NavigationView中自定义项目背景和项目文本颜色?
  • 读取su进程内的命令输出
  • 5 Solutions collect form web for “为什么这个简单的服务不启动?”

    你在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中。