원래 이렇게 하는건지 모르겠지만
정해진 이벤트말고 내 나름 이벤트를 만들고 싶을때의 방법입니다.
저도 왕초보라 이게 맞는건지 모르겠지만 전 이렇게 쓰고 있습니다.
잘못된 방법이라면 죄송합니다 ㅠㅠ (초보라...)

만약 아래 MySmile 클래스에서 작업중에 "웃음" 이라는 상태가 발생하면 콜백을 실행하는 예제입니다.


class MySmile{

//콜백을 저장할 멤버변수
private OnSmileListener mOnSmileListener;

//콜백은 이 인터페이스를 상속해서 만들어야 함
public interface OnSmileListener{
void onSmile(String who, String smile);
}

//콜백을 세팅하는 메쏘드
public void setOnSmileListener(OnSmileListener smile){
mOnSmileListener = smile;
}

.............

public void run(){
어떤작업중....
....
if(웃었냐?){
mOnSmileListener.onSmile("언니", "졸라");
}
}

..................

}

사용방법은

MySmile ms = new MySmile();
ms.setOnSmileListener(new MySmile.OnSmileListener(){
public void onSmile(String who, String smile){
Log.d("my", who + "가 " + smile + "웃었다");
}
});

이렇게 하면 위 클래스중 "웃었냐?" 에서 조건에 걸리면 Log.d(...) 가 실행됩니다.

이상 허접한 팁이었습니다 (_ _)