StartService()를 사용하여 응용 프로그램의 첫 번째 활동을 OnCreate에서 생성 한 Android 서비스가 있습니다. 이 서비스가 응용 프로그램의 수명, 즉 응용 프로그램의 모든 활동에 걸쳐 실행되어야합니다. 그러나 사용자가 홈 키 또는 뒤로 버튼을 누른 후에는 서비스가 자원을 소비하지 않아야합니다. 모든 활동의 onPause() 메소드에서 서비스를 중지하는 것 이외의 다른 방법은 없습니까?Home 키를 누른 후 Android 서비스가 실행 중입니다.
답변
무엇 대럴이 아니라에서 그 코드를 넣어 제안 예를 들어, 여기이면 MyService 내에 중첩 클래스입니다 Activity를 확장 한 다음, 모든 일반적인 활동에서이를 확장하는 새로운 수업.
나는 당신의 목표를 달성하는 다른 더 우아한 방법을 모른다.
감사. 나에게 잘 보이기 – Ananth
StartService를 사용하는 대신 onResume에서 bindService를 호출하고 onPause에서 unbindService를 호출 할 수 있습니다. 열린 바인딩이 없을 때 서비스가 중단됩니다.
서비스에 액세스하려면 ServiceConnection을 만들어야합니다.
class MyService {
public static class MyServiceConnection implements ServiceConnection {
private MyService mMyService = null;
public MyService getMyService() {
return mMyService;
}
public void onServiceConnected(ComponentName className, IBinder binder) {
mMyService = ((MyServiceBinder)binder).getMyService();
}
public void onServiceDisconnected(ComponentName className) {
mMyService = null;
}
}
// Helper class to bridge the Service and the ServiceConnection.
private class MyServiceBinder extends Binder {
MyService getMyService() {
return MyService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return new MyServiceBinder();
}
@Override
public boolean onUnbind(Intent intent) {
return false; // do full binding to reconnect, not Rebind
}
// Normal MyService code goes here.
}
하나를 통해 서비스에 대한 액세스 얻을이 헬퍼 클래스를 사용할 수 있습니다 : 당신이 할 수있는
MyServiceConnection mMSC = new MyService.MyServiceConnection();
// Inside onResume:
bindService(new Intent(this, MyService.class), mMSC, Context.BIND_AUTO_CREATE);
// Inside onPause:
unbindService(mMSC);
// To get access to the service:
MyService myService = mMSC.getMyService();
응답을 주셔서 감사합니다.이 경우에도 모든 활동에서 OnPause 이벤트를 처리해야합니다. – Ananth
- 1. DLL에서 서비스가 실행 중입니다.
- 2. 텍스트 영역에 Enter 키를 누른 후 Shift 키를 누른 상태에서 Enter 키를 누르면 값이 다음 줄로 이동합니다.
- 3. WP7에서 장치 뒤로 키를 누른 후 마이크 버퍼가 0이됩니다.
- 4. ESC 키를 누른 후 NSTextFieldCell에서 NSOutlineView 편집을 끝내는 방법
- 5. AutoCompleteExtender가 실행 중입니다. 웹 서비스가 결과를 반환하지만 표시되지 않습니다.
- 6. Runnable이 예상보다 느리게 실행 중입니다.
- 7. Android 서비스가 잠자기없이 백그라운드로 실행 중입니까?
- 8. 잠시 후 Android 서비스가 중지됨 도움을 받으십시오
- 9. 강제 종료 후 Android 서비스가 계속 실행됩니다.
- 10. 집을 누른 후 하위 활동으로 재개
- 11. 응용 프로그램이 여전히 실행 중입니다.
- 12. Android : 서비스가 종료되면 서비스가 중지됩니다.
- 13. 버튼을 누른 후 포커스 변경
- 14. 'X'버튼을 누른 후 데이터베이스가 변경됩니다.
- 15. f5를 누른 후 캐시 지우기
- 16. Home 키를 Eclipse의 위치 1에 두게하려면 어떻게해야합니까?
- 17. Android 사용자가 키를 누름
- 18. GetKeyState로 키를 누른 순간을 얻는 방법
- 19. 서비스에서 누른 하드 키를 가로채는 방법은 무엇입니까?
- 20. pygtk에서 다른 키로 누른 키를 변환하는 방법
- 21. 홈 키를 누른 후 대화 상자를 두 번 표시하고 다시 앱으로 돌아 가기
- 22. 서비스가 실행 중인지 확인하십시오.
- 23. 서비스가 실행 된 횟수
- 24. 웹 사이트에서 캐시 된 dll을 변경 한 후 실행 중입니다.
- 25. 일정 시간 동안 버튼을 누른 후 잠그기
- 26. Input type = "text"에서 Enter 키를 누른 후 JavaScript 함수를 호출하는 방법?
- 27. Android + WS- * 서비스가 필요하십니까?
- 28. asp.net 새로 고침 버튼 이벤트가 실행 중입니다.
- 29. Firefox에서 계속 JavaScript가 실행 중입니다.
- 30. PHP에서 bash 스크립트를 실행 중입니다
'자원을 소비하면 안됩니다'는 것은 무엇을 의미합니까? 너 무슨 뜻이야? – xandy
나는 백그라운드에서 실행되는 서비스를 원하지 않는다. – Ananth