일부 세부 사항을 내 db로 보내는 활동이 있지만 뒤로 단추를 누르면 중지됩니다. 백그라운드에서 실행할 수 있습니까? 서비스를 사용하면 문제를 해결할 수 있다고 들었지만 모든 수업이 활동으로 위축되어 가능한지 알고 싶습니다. onStop 메서드에서 일부 코드를 사용할 수 없습니까?백그라운드에서 활동 실행
답변
당신은 모든 클래스가 사용자 인터페이스 논리에 임베디드 된 응용 프로그램 논리를 가지고 있다는 것을 의미한다고 가정하고있는 활동으로 작성되었다고 언급했습니다. 이것은 일반적으로 좋은 습관이 아닙니다. 애플리케이션 별 코드를 별도의 클래스로 마이그레이션해야합니다. 사용자 인터페이스 외부에서이 기능을 사용하면 애플리케이션에 다양한 이점이 있습니다.
질문에 대답하려면 Service
의 하위 클래스로 응용 프로그램에서 백그라운드에서 기능을 수행하도록 할 수 있습니다. 멋진 설명을 위해 here을보십시오.
활동이 인 텐트를 사용하여 통신하는 서비스를 작성해야합니다. 따라서 서비스에 데이터를 전송하여 데이터베이스에 전송하면 서비스에서 활동을 알릴 수 있습니다. Activity가 서비스의 이벤트를 청취 할 때 Observer 패턴 (Java 및 Android의 Listener 및 기타 여러 이벤트 처리 시스템)을 구현합니다.
서비스를 폴링 할 수도 있지만 상태 업데이트를 얻는 데 선호되는 패턴은 아닙니다.
Heey,
서비스를 확장하는 새로운 클래스를 만듭니다. 필요한 재정의를 추가하십시오. 이 도움이 :)
는당신은을 무시해야합니다
stopService(new Intent(getBaseContext(), ServiceClassName.class));
희망 : 당신이 서비스를 중지 할 수 있습니다
stopService(new Intent(getBaseContext(), ServiceClassName.class));
:
@Override
public IBinder onBind(Intent intent)
{
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//this service will run until we stop it
// This will execute when the service starts
return START_STICKY; //makes it sticky to keep it on until its destroyd
}
@Override
public void onDestroy()
{
super.onDestroy();
// when the service is destroyd
}
당신과 함께 서비스를 시작할 수 있습니다 onBackPressed 메서드를 사용하여 원하는 것을 수행 할 수 있습니다. 활동을 "숨기"(사용자가 '닫히는'것으로 보이므로) moveTaskToBack 메소드를 호출 할 수 있습니다.
"moveTaskToBack"후에도 응용 프로그램이 계속 실행됩니까? –
db 쓰기에 사용중인 '백그라운드'코드를 테스트해야합니다. 최소한 그것은 그것을 숨기기 전에 국가를 보존 할 것입니다. – DNax
그리고 super.onBackPressed()를 사용해야합니까? 내 앱을 죽이는 방법이 아니기 때문에 나는 생각하지 않는다. –
- 1. 백그라운드에서 안드로이드 활동 실행
- 2. 백그라운드에서 활동 인식
- 3. Android 활동 유지 백그라운드에서
- 4. 백그라운드에서 전경 활동 업데이트
- 5. 백그라운드에서 실행중인 활동 표시
- 6. 백그라운드에서 실행중인 활동 유지
- 7. 백그라운드에서 GPS를 기록하는 Android 활동
- 8. 백그라운드에서 실행
- 9. 백그라운드에서 남아있는 Android 활동 onNewIntent
- 10. 백그라운드에서 예전 활동으로 활동 시작
- 11. 백그라운드에서의 활동 실행
- 12. 앱이 백그라운드에서 실행 중인지 확인
- 13. 백그라운드에서 실행 가능한 실행 파일
- 14. 숨겨진 스텔스 모드에서 활동 실행
- 15. 백그라운드에서 브라우저에서 시작된 백그라운드에서 PHP 스크립트 실행
- 16. Qt4로 백그라운드에서 gnuplot 실행
- 17. 백그라운드에서 스크립트를 실행 하시겠습니까?
- 18. 백그라운드에서 작업 실행 계속
- 19. 백그라운드에서 우분투를 실행
- 20. 백그라운드에서 기능 실행
- 21. IOS 백그라운드에서 코드 실행
- 22. 백그라운드에서 프로그램 실행
- 23. 백그라운드에서 Android 앱 실행
- 24. 백그라운드에서 응용 프로그램 실행
- 25. 백그라운드에서 Java 실행
- 26. 백그라운드에서 루프 실행
- 27. 유니티 안드로이드 백그라운드에서 실행
- 28. 백그라운드에서 R을 실행 중
- 29. 백그라운드에서 파이썬 코드 실행
- 30. 백그라운드에서 쉘 스크립트 실행
아니요, onStop이 빠르기 때문에 처리를 계속할 수 없습니다. 장기 실행 프로세스가있는 경우 프로세스를 백그라운드로 두어야하지만 사용자 상호 작용 프로세스에만 활동을 사용해야합니다. '서비스'로의 마이그레이션은 어렵지 않으며 노력할 가치가 있습니다. – 323go
귀하는 서비스를 찾고 있습니다. 이 자습서 http://www.vogella.com/articles/AndroidServices/article.html을 확인하십시오. –
내 앱이 어떤 종류의 타이머라고 가정 해 봅시다. 백그라운드에서 실행하고 싶지만 사용자가 다시 열 때 사용하고 싶습니다. 그는 그것을 활동 (activity)이라고 생각해야한다. 어떻게 나눌 것인가? 봉사 란 무엇이며 활동은 무엇인가? –