PendingIntent를 사용하여 서비스를 호출 하고
다시 서비스를 종료할 경우
(서비스의 Destroy함수를 호출 하고 싶을 경우)
context.stopService(intent)해주면 됨
이중 Intent호출을 할 경우
context.startService(intent)로 하면 에러가 뜨기 때문에
PendingIntent.send()로 호출을 하지만
destroy할 때는 기존 destroy방식으로 진행
context.stopService(intent);
public class TestReceiver extends BroadcastReceiver {
public static boolean flag = false;
public TestReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
if(flag) {
//** onDestroy메소드 호출
Intent stopServ = new Intent(context, BoundService.class);
context.stopService(stopServ);
flag = false;
} else {
Intent startServ = new Intent(context, BoundService.class);
PendingIntent pendIntent = PendingIntent.getService(context, 0, startServ, PendingIntent.FLAG_ONE_SHOT);
try {
pendIntent.send();
}catch(PendingIntent.CanceledException e) {
Log.d("Start Service", "Error");
}
// context.startService(intent);
flag = true;
}
// throw new UnsupportedOperationException("Not yet implemented");
}
}
댓글 없음 :
댓글 쓰기