0

메시지 및 수신 통화를 백그라운드에서 수신하고 메시지 유형에 따라 다양한 활동으로 표시하거나 출력해야하는 메시징 및 SIP 앱이 있습니다. 내 질문은 : 이것의 SIP 부분을 달성하는 가장 좋은 방법은 무엇입니까? AsyncTask, Service, IntentService 등?Android SIP 서비스 지속성

내 앱이 시작되면 처음에는로드 표시기를 보여주는 시작 활동을 시작하고 사용자에게로드 상태를 보여 주며 (서버 응용 프로그램에 체크인하고 사운드 레벨을 설정하는 등) 몇 가지 초기 작업을 처리합니다.).

그 시점에서, 나는 SIP 서버로 SIP 클라이언트로 등록하고 백그라운드에서 들어오는 호출을 듣고 거기에 앉아 있고, 다른 활동은 전경에서 (예 : 시계 또는 WebView와 같이) 실행할 수 있습니다. 웹 페이지 등). SIP 전화가 오면 배경 SIP 클라이언트가 응답해야하며, 어떤 활동이 있었는지 화면에서 인계받을 수 있어야합니다.

원래 SipListener 클래스의 경우 AsyncTask으로 시작되었습니다. 그러나 2 가지 우려 사항이 있습니다. 1) 메모리 누출 위험을 감수하고 싶지 않습니다. 2) SIP 서버에 성공적으로 등록한 후에도 SIP 클라이언트를 유지할 수 없습니다. (들어오는 호출이 수신되지 않고 훨씬 적은 양 대답했다).

다음으로 SipListener 클래스를 Service으로 포팅 해 보았습니다. 그러나 문제는 SIP가 네트워크 서비스이고 Network-on-Main-Thread 예외가 발생했기 때문에 등록조차 할 수 없다는 것이 었습니다.

자, 이제이 IntentService 옵션을보고 궁금한 점이 있습니까?

나는 안드로이드를 배우고있어, 그들이 말하는 것처럼 위험하다는 것을 충분히 안다! 누군가 올바른 방향으로 나를 가리킬 수 있습니까?

답변

0

리스너뿐만 아니라 서비스 시작을 구현하고 수신 통화 (메시지)에 대한 활동을 시작하거나 알림을 푸시 할 수 있습니다.

자신이 도전하고 싶다면 Linphone for android을 확인하십시오. 빌드를 시도하십시오. 훌륭한 연습이 될 것입니다. 사용하고 맞춤 설정하십시오. 또한 Service이있어 도움이 될 수 있습니다.

행운을 빈다.