안녕하세요.
5초마다 어떤 일을 수행하는 daemon방식을 service의 start안에 넣었는데요. 돌다가 APP가 뻗어요.
우선 하고자 하는것은 원래 activity에서 버튼을 누르면 백단에서 서비스가 돌아가고 front에서는 app가 계속 실행되구요.
백단의 service에서는 daemon처럼 루프를 돌면서 검사를 하다가 noti를 주고 싶습니다.
sample source를 만들어서 test했는데 오류가 납니다.

Sorry! 다이얼로그가 뜹니다.
Activity 이름 (in application Hello, Android) is not responding

고수님들 의견좀 부탁드립니다.

<오류내용>
 - Log cat내용입니다.(주황색글씨로 오류는 아닌듯 한데요 front에서 button click클릭하고 나면 응답을 더이상 받지 못하는거 같습니다. 버튼 클릭도 안되구요!! 또 루프내에 로그를 찍은것은 5초마다 계속 찍힙니다....아무래도 루프에서 다 잡고 있는게 아닌가 해서요

05-02 08:01:53.355: WARN/WindowManager(52): Key dispatching timed out sending to com.example.helloandroid/com.example.helloandroid.HelloAndroid

05-02 08:01:53.366: WARN/WindowManager(52): Dispatch state: {{KeyEvent{action=1 code=19 repeat=0 meta=0 scancode=103 mFlags=8} to Window{43c8bb60 com.example.helloandroid/com.example.helloandroid.HelloAndroid paused=false} @ 1272786645359 lw=Window{43c8bb60 com.example.helloandroid/com.example.helloandroid.HelloAndroid paused=false} lb=android.os.BinderProxy@43d240b8 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{43cb0028 com.example.helloandroid/com.example.helloandroid.HelloAndroid paused=false}}}

05-02 08:01:53.375: WARN/WindowManager(52): Current state:  {{null to Window{43cb0028 com.example.helloandroid/com.example.helloandroid.HelloAndroid paused=false} @ 1272787313375 lw=Window{43cb0028 com.example.helloandroid/com.example.helloandroid.HelloAndroid paused=false} lb=android.os.BinderProxy@43d84890 fin=false gfw=true ed=true tts=0 wf=false fp=false mcf=Window{43cb0028 com.example.helloandroid/com.example.helloandroid.HelloAndroid paused=false}}}
.......
.......
.......
05-02 08:01:55.845: WARN/WindowManager(52): No window to dispatch pointer action 0

<Service Code>
package com.example.helloandroid;
import java.util.ArrayList;
import java.util.List;
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.os.Handler;
import android.os.IBinder;
import android.util.Log;
public class HelloService extends Service {
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    private NotificationManager mManager;
    private int mLastId = 0;
    private List<Integer> mActiveIdList = new ArrayList<Integer>();
    
//    public class LocalBinder extends Binder{
//        HelloService getService(){
//            return HelloService.this;
//        }
//    }
//    private final IBinder mBinder = new IBinder();
    /* (non-Javadoc)
     * @see android.app.Service#onCreate()
     */
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        mManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
        sendNotification();
        
        super.onCreate();
    }
    /* (non-Javadoc)
     * @see android.app.Service#onStart(android.content.Intent, int)
     */
    @Override
    public void onStart(Intent intent, int startId) {
        Log.d( "BroadCastReceiverService", "========================================" );
        Log.d( "BroadCastReceiverService", "onStart() CALL" );
        Log.d( "BroadCastReceiverService", "========================================" );
//         TODO Auto-generated method stub
        Handler handler = new Handler();
        handler.postDelayed(new Runnable(){
            public void run() {
                try{
                    while( true ){
                        
                        Log.d( "BroadCastReceiverService", "========================================" );
                        Log.d( "BroadCastReceiverService", "Processing......" );
                        Log.d( "BroadCastReceiverService", "========================================" );
                        
                        Thread.sleep(5000);
                    }
                }catch(Exception e){
                    Log.d( "BroadCastReceiverService", "========================================" );
                    Log.d( "BroadCastReceiverService", "Exception......"+e.toString() );
                    Log.d( "BroadCastReceiverService", "========================================" );
                }finally{
                    Log.d( "BroadCastReceiverService", "========================================" );
                    Log.d( "BroadCastReceiverService", "Finally Call......" );
                    Log.d( "BroadCastReceiverService", "========================================" );
                }
            }
            }, 1000);
        
        super.onStart(intent, startId);
        
    }
    /* (non-Javadoc)
     * @see android.app.Service#onDestroy()
     */
    @Override
    public void onDestroy() {
        Log.d( "BroadCastReceiverService", "========================================" );
        Log.d( "BroadCastReceiverService", "onDestory() CALL" );
        Log.d( "BroadCastReceiverService", "========================================" );
        // TODO Auto-generated method stub
        cancelNotification();
        
        super.onDestroy();
    }
    /////////////////////////////////////////////////////////////////////////////
    
    //notification이 tap되었을 때에 발행되는 인텐트
    private PendingIntent pendingIntent(){
        Intent i = new Intent( getApplicationContext(),HelloAndroid.class);
        PendingIntent pi = PendingIntent.getActivity(this, 0, i, 0);
        return pi;
    }
    
    private int createNotificationId(){
        int id = ++mLastId;
        mActiveIdList.add(id);
        return id;
    }
    private void sendNotification(){
        //notification 생성
        Notification n = new Notification();
        
        //아이콘 설정
        n.icon = R.drawable.icon;
        
        //ticker text설정
        n.tickerText = "noti-ticker";
        
        //확장 status bar의 표시 설정
        n.setLatestEventInfo(getApplicationContext(), "long title", "long text", pendingIntent());
        
        n.when = System.currentTimeMillis();
        
        n.number = 1;
        
        //notification발행
        mManager.notify(createNotificationId(), n);
    }
    private void cancelNotification(){
        if(mActiveIdList.isEmpty()){
            return;
        }
        int id = mActiveIdList.remove(0);
        mManager.cancel(id);
    }
}

<Service를 호출하는 Activity의 버튼 클릭 이벤트>
///////////////////////////////////////////////////
        //버튼 처리
        Button button_noti = (Button)findViewById(R.id.noti_button);
        button_noti.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                
                // TODO Auto-generated method stub
                startService(new Intent(HelloAndroid.this, HelloService.class));
            }
        });
        
        ///////////////////////////////////////////////////
        //cancel 버튼 처리
        Button button_noti_cancel = (Button)findViewById(R.id.noti_cancel_button);
        button_noti_cancel.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
        
                // TODO Auto-generated method stub
                stopService(new Intent(HelloAndroid.this, HelloService.class));
            }
        });

<AndroidManifest.xml 추가내용>
<service android:name= "com.example.helloandroid.HelloService"/>

start버튼 클릭해서service start되는것 까지 확인하면 activity에서 click이 안되는등 다 먹통이 되구요, 조금 시간이 지나면 경고 다이얼로그가 뜨는데요 내용은 이렇습니다.
Activity 이름 (in application Hello, Android) is not responding

좋은 의견있으신분 말씀좀 주시기 바랍니다. 감사합니다.^^