티스토리 뷰

android thread debugging, thread breakpoint


Emulator 에서 Service 나 BroadcastReceiver 에 breakpoint 걸기.

Service 나 BroadcastReceiver 를 Debugging 할 때는 breakpoint 걸어놓은 코드 전에 아래 코드를 넣어줘야 한다. 그렇지 않으면 debugger 가 처음 실행시점에 activity 에 attach 되어 버리기 때문에 Service나 BroadcastReceiver 에 걸어놓은 breakpoint 에서는 멈추지 않는다.

android.os.Debug.waitForDebugger();

그리고 하나 참고로 얘기하자면, Broadcast 는 특성상 10초 이상 머무르지 않는다. 그러므로 breakpoint 를 걸어놔서 멈춰도 금방 process 가 switching 되어 버린다.

 
public class AlarmReceiver extends BroadcastReceiver {
    private MediaPlayer mMediaPlayer; 
    
    @Override
    // On every interval, the Intent is received here
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
         final Calendar c = Calendar.getInstance();
         int mHour = c.get(Calendar.HOUR_OF_DAY);
         int mMinute = c.get(Calendar.MINUTE);
         int mSecond =c.get(Calendar.SECOND);        
         
         android.os.Debug.waitForDebugger(); 
         // breakpoint
         Toast.makeText(arg0, "현재 시간"+mHour+":"
            +mMinute+":"+mSecond, Toast.LENGTH_SHORT).show();
         Log.d("mylog","onReceive");
    }


}


 

 

Reference

  1. 서비스 디버깅 하기(Attach debugger for service in Android)
    http://honorstudent.tistory.com/14


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함