안드로이드 개발 질문/답변
(글 수 45,052)
이제 막 안드로이드 개발을 시작하는 초보입니다
앱을 실행하여 가속도 감지를 활성화 시킨후 앱을닫으면(홈버튼)
휴대폰을 흔들경우 가속도를 감지하여 경고 문을 toast로 띠우는 앱을 만들고 있는데
Service 클래스의 onStartCommand를 통해 가속도감지activity를 호출하였더니
홈버튼을 누를시에 서비스는 살아있는데 액티비티는 활성화가 되지 않는거 같습니다.
어떻게 해야 백그라운드에서 가속도를 감지하는 서비스를 구현할 수 있나요?
public int onStartCommand(Intent intent, int flags, int startId){
intent = new Intent(this, FalldownService.class); //진동을 감지하는 FalldownService라는 액티비티를 서비스실행시 호출하였습니다.
intent.addFlags(intent.FLAG_ACTIVITY_NEW_TASK);
startService(intent);
startActivity(intent);
Toast.makeText(this, "서비스가 시작되었습니다", Toast.LENGTH_LONG).show();
IntentFilter filter = new IntentFilter("falldownservice");
registerReceiver(mReceiver, filter);
return Service.START_NOT_STICKY;
}




onStartCommand() 에 로그한번 찍어보셔요
혹시 실행되는데 액티비티가 안뜨는 거라면 액티비티가 실행되는데 가려지는 것일수도 잇꾸요.
실행되는 액티비티의 onCreate에 로그를 한번찍어보시구요..
저같은 경우는 액티비티는 실행되는데 바로 가려져서 안보이는경우가 있었꾸요
그래서 이벤트가 발생해서 서비스가 호출되면
서비스에 스레드를 하나 만들어서
onStart(), 님의 경우에는 onStartCommand()에
쓰레드 run()을 실행시켜 sleep(1000); 이렇게 1초정도 슬립한후 액티비티르 ㄹ띄우니 잘되었습니다.
하지만 액티비티에 로그찍었는데 안된다면 다른문제겠네요 ㅠㅜ