GCM 서버로부터 메시지를 수신하고 Noti 띄우고 클릭하면 Activity까지 띄우는 것은 잘됩니다.
현재 GCM 메시지 수신시 진동 및 사운드 발생도 잘되는데 이 진동과 사운드를 유저가 noti를 클릭할 때까지 주기적으로 계속 발생되게끔 하려고 합니다. 그래서 IntentService내에서 최초 메시지 수신시 주기적으로 이벤트를 발생시켜서 진동이 발생되는 것까지는 했는데요. noti를 클릭했거나 사라졌을때 이것들을 멈춰줘야 하는데 어찌해야 할지 모르겠습니다.
대략의 소스는 아래와 같습니다.
protected void onHandleIntent(Intent arg0)
{
if(vib == null) vib = (Vibrator)this.getSystemService(Context.VIBRATOR_SERVICE);
if(pattern == null) pattern = new long[] {0, 500};
Message message = mHandler.obtainMessage(0);
mHandler.sendMessageDelayed(message, 5000); // 5초마다 한번씩
}
Handler mHandler = new Handler()
{
public void handleMessage(Message msg)
{
if(msg.what == 0)
{
vib.vibrate(pattern, -1);
mHandler.sendEmptyMessageDelayed(0, 5000);
}
}
};