Problemas com Servico

Pessoal preciso de uma ajuda de voces, o seguinte, criei um servico que se inicia com o boot do Android que acessa um webservice, verifica se tem novas OSs relacionadas ao IMEI do aparelho e se tiver dispara a Notificacao. Funciona, mas quando o cara abre o alerta o servico para, ontem fiz mais um teste, reiniciei o celular com servicos de dados ativados, a notificacao funcionou, abri o alerta e o servico parou, o servico só retornou a mostrar a notificacao depois de 3 horas. Se alguem puder dar uma ajuda para descobrir agradeceria, e tenho certeza que o codigo abaixo sera util para muitos outros tambem.

Segue o codigo:

IniciarServico.java

package com.br.notificacao;

import java.util.Calendar;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

	
	public class IniciarServico extends BroadcastReceiver {
		
		@Override
		public void onReceive(Context contexto, Intent intent) {
            // aqui o servico teria que verificar a cada 15 segundos - somente para teste
			
			agendar(contexto, 15);

		}

		// Agenda o alarme/serviço para executar daqui a X segundos
		private void agendar(Context contexto, int segundos) {
			Intent it = new Intent("VERIFICA_OS");
			PendingIntent p = PendingIntent.getService(contexto, 0, it, 0);
			Calendar c = Calendar.getInstance();
			c.setTimeInMillis(System.currentTimeMillis());
			c.add(Calendar.SECOND, segundos);
			AlarmManager alarme = (AlarmManager) contexto.getSystemService(Context.ALARM_SERVICE);
			long tempo = c.getTimeInMillis();
			alarme.set(AlarmManager.RTC_WAKEUP, tempo, p);
		}
	}

Notificacao.java

package com.br.notificacao;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.IBinder;
import android.telephony.TelephonyManager;
import android.util.Log;

public class Notificacao extends Service {
	private final String CATEGORIA = "SYSTEMCAR";
	
	private static final String SOAP_ACTION_GET = "http://tempuri.org/GetNewOS";
	private static final String METHOD_NAME_GET="GetNewOS";
	private static final String NAMESPACE="http://tempuri.org/";
	private static final String URL="http://www.site.com.br/servico.asmx";
	
	
	// destroy o alerta no TB_ALERTANDROID
	
	private static final String SOAP_ACTIONGET = "http://tempuri.org/UpdateGetNewOS";
	private static final String METHOD_NAMEGET="UpdateGetNewOS";

	
	
	String codimei = "";
	
	@Override
	public IBinder onBind(Intent intent){
		return null;
	}
	
	@Override
	public void onCreate() {
		super.onCreate();
	}

	@Override
	public void onStart(Intent intent, int startId){
			super.onStart(intent, startId);
		
		
		TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
		codimei = telephonyManager.getDeviceId();
		Verificar(telephonyManager.getDeviceId());
	}

	private void Verificar(String imei)
	{
		new Thread(){
			@Override
			public void run(){
				
							
				SoapObject request = new SoapObject (NAMESPACE, METHOD_NAME_GET);
				
				request.addProperty("imei", codimei);
				
				SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
				envelope.dotNet = true;
				envelope.setOutputSoapObject(request);
				
				try
				{
					HttpTransportSE httpTransport = new HttpTransportSE(URL);
					httpTransport.call(SOAP_ACTION_GET, envelope);
					
					//Resultado
					SoapPrimitive resultado = (SoapPrimitive)envelope.getResponse();
					
					String resultadoachei = resultado.toString();

					if ( resultadoachei != ""){
					
// ............... aqui ele cria a Notificacao se tiver OS aberta para o IMEI do aparelho

						criarNotificacao();

					}
				}
				catch (Exception e)
				{
					Log.e(CATEGORIA, e.getMessage(), e);
				}
			}
		}.start();
	}
	
	@Override
	public void onDestroy(){
		super.onDestroy();
	}

	protected void criarNotificacao() {
		String mensagemBarraStatus = "Nova Ordem de Serviço.";
		String titulo = "Ordem de Serviço";
		String mensagem = "Existe uma nova ordem de servico!Verifique o sistema.";
		Class<?> activity = DetalhesNotificacao.class;

		NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

		Notification notificaction = new Notification(R.drawable.icon,
				mensagemBarraStatus, System.currentTimeMillis());

				
		notificaction.defaults |= Notification.DEFAULT_LIGHTS;
		notificaction.ledARGB = Color.MAGENTA;//0xff00ff00;
		notificaction.ledOnMS = 300;
		notificaction.ledOffMS = 1000;
		notificaction.flags |= Notification.FLAG_SHOW_LIGHTS;
		
		notificaction.flags |= Notification.FLAG_INSISTENT;

		notificaction.flags |= Notification.FLAG_AUTO_CANCEL;
		
		Intent intentMensagem = new Intent(this, activity);
		intentMensagem.putExtra("resultadu", "funcionou!?");		
		PendingIntent p = PendingIntent.getActivity(this, 0, intentMensagem, 0);

		notificaction.setLatestEventInfo(this, titulo,
				mensagem, p);

		notificaction.vibrate = new long[] { 100, 250, 100, 1000 };

		notificationManager.notify(R.string.app_name, notificaction);
	}

}

MensagemAlerta.java

package com.br.notificacao;

public class MensagemAlerta {

	private CharSequence title;
	private CharSequence body;
	private CharSequence subTitle;

	public MensagemAlerta(CharSequence title, CharSequence body,
			CharSequence subTitle) {

		this.title = title;
		this.body = body;
		this.subTitle = subTitle;
	}

	public CharSequence getTitle() {
		return title;
	}

	public void setTitle(CharSequence title) {
		this.title = title;
	}

	public CharSequence getBody() {
		return body;
	}

	public void setBody(CharSequence body) {
		this.body = body;
	}

	public CharSequence getSubTitle() {
		return subTitle;
	}

	public void setSubTitle(CharSequence subTitle) {
		this.subTitle = subTitle;
	}

}

DetalhesNotificacao.java


package com.br.notificacao;

import android.app.Activity;
import android.app.NotificationManager;
import android.content.pm.PackageManager;
import android.content.Context;
import android.os.Bundle;
import android.widget.Toast;

public class DetalhesNotificacao extends Activity{


    @Override
    protected void onCreate(Bundle icicle){
    	super.onCreate(icicle);
    	// Cancela a notificacao
			
			NotificationManager notification = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
	    	
	    	// utiliza o mesmo id que foi utilizado para criar
	    	
	    	notification.cancel(R.string.app_name);

             PackageManager packageManager = getPackageManager();  
    	     String packageName = "nome.do.pacote";  
    	  
    		Intent intent = packageManager.getLaunchIntentForPackage(packageName);  
    		if(null != intent){  
    		     startActivity(intent);  
    		}      	


    }

}

AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.br.notificacao"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.VIBRATE" />
	<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <!--  executa ao terminar a inicializacao (boot) do sistema operacional  -->
        <receiver android:name=".IniciarServico">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
        <service android:name=".Notificacao">
            <intent-filter>
                <action android:name="VERIFICA_OS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </service>
        <activity android:name="DetalhesNotificacao"></activity>
    </application>
</manifest>

Entao como eu disse, ele funciona, mas nao sei porque depois que abre o alerta ele nao exibe mais e só depois de 3 horas que volta mostrar a notificacao. Sendo que eu queria que pelo menos a cada 1 minuto fizesse a verificacao do webservice e mostrasse a notificacao.

Por enquanto agradeco .