为何在服务里的进程或时钟无效

为什么在服务里的进程或时钟无效?
做了一个未接电话提醒,直接运行Activity,有个服务,整个都没问题,关键是开机启动。
一、开机启动(没问题,从日志上看是启动了)
public class BootReceiver extends BroadcastReceiver {
 public void onReceive(Context context, Intent intent) { 
   
  if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
  {
  context.startService(new Intent(context,HintService.class));
  }
 }
}
二、服务:
public class HintService extends Service
{
//当启动Service的时候会调用这个方法
@Override
public void onCreate()
{
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//问题在这里。
}
}
在上面的onStartCommand,开启一个时钟,从日志上看,timer.schedule...方法已调用,但时间到了却不执行。
换成Thread,
public class HintThreadCls extends Thread 
{
public int SleepMillSeconds=5*60*1000;
public void run() 
{
// TODO Auto-generated method stub
try
{
while (!this.isInterrupted()) 
{
Globe.WriteLog("进入线程了。");
Thread.sleep(SleepMillSeconds);//线程暂停10秒,单位毫秒

uiHandler.sendEmptyMessage(168);
}
}
catch(InterruptedException ex)
{

}
Globe.WriteLog("线程,结束Run");
}


}
结果从日志上看,已经进入 "进入线程了。"这一步了,但时间到了,却没有往下走,也没有异常。

怎么回事?直接点运行无问题,就是重启后不行。

------解决方案--------------------
SleepMillSeconds=5*60*1000;
这个是5分钟啊,不是10秒


catch(InterruptedException ex)
{
ex.printStackTrace(); //加上输出看是否有出错信息
}

在uiHandler.sendEmptyMessage(168); 这个前面和后面分别加上
Log.i("test", "--->Start<----")
uiHandler.sendEmptyMessage(168); 
Log.i("test", "--->Finish<----")

另外,Thread.sleep(SleepMillSeconds);建议换成:
Java code

    synchronized(this)
    {
        try
        {
            wait(SleepMillSeconds); //等待
        }
        catch (InterruptedException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

------解决方案--------------------
在Thread.sleep(SleepMillSeconds);//线程暂停10秒,单位毫秒
后面加句log,看看有没有走。