2011-08-12 1 views
0

일단 사용자가 응용 프로그램을 실행하면 필요한 파일을 다운로드하고 설정하는 등 긴 프로세스가 실행되는 응용 프로그램이 있습니다. 프로세스를 백그라운드로 옮기고 프로세스가 실행되는 동안 상태 표시 줄에 알림을 표시하고 싶습니다.Android는 상태 표시 줄에서 긴 프로세스를 실행합니다.

파일을 다운로드하는 동안 프로세스를 계속 유지하는 것이 가장 좋습니다. 나는 서비스에 대해 읽었지 만 쉽게 살해된다는 말을 들었습니까? 서비스를 사용해야합니까, 아니면 우선 순위가 가장 높은 스레드를 실행하고 프로세스가 끝났을 때 알림을 보내고 닫아야합니까?

어떤 도움을 주셔서 감사합니다. 과정은 약 10 분 정도 걸리므로 rom 관리자에서 rom을 다운로드하는 데 걸리는 시간보다 더 오래 걸릴 것입니다. 기본적으로 같은 설정이 도움을 주셔서 감사합니다.

답변

0

전경 서비스처럼 정확하게 들립니다. 이를 생성하면 상태 표시 줄에 알림이 표시되어 사용자에게 실행 중임을 알립니다. 또한 서비스는 취소되지 않도록 우선 순위가 높습니다. 전경 플래그에 대한 설명서에서

:

public final void startForeground (int id, Notification notification) 

Make this service run in the foreground, supplying the ongoing notification 
to be shown to the user while in this state. By default services are background, 
meaning that if the system needs to kill them to reclaim more memory (such as to 
display a large page in a web browser), they can be killed without too much harm. 
You can set this flag if killing your service would be disruptive to the user, 
such as if your service is performing background music playback, so the user 
would notice if their music stopped playing. 

당신은 문서 here의 나머지 부분을 볼 수 있습니다.

+0

답변 해 주셔서 감사합니다. 잠시 후에 다시 한 번 확인해 보겠습니다. 답변을 수락 할 예정입니다. – user577732

0

서비스는 당신이 원하는 것입니다. 서비스를 작성할 때 서비스의 우선 순위를 지정할 수 있습니다 (@ theisenp의 게시물 참조).

Activity을 배경으로 옮긴 다음 나중에 다시 열면 - 서비스를 시작한 다음 실제로는 finish() 메소드를 사용하여 앱을 중지하는 것이 좋습니다. 그런 다음 서비스가 완료되면 활동을 의도로 다시 실행하거나 BroadcastReceiver으로 처리 할 수있는 인 텐트를 브로드 캐스팅하십시오.