Android SIP Service Persistence



我有一个消息传递和SIP应用程序,需要在后台侦听收到的消息,来电等,然后在各种活动中显示或输出它们(取决于消息类型)。我的问题是:完成SIP部分的最佳方法是什么?AsyncTask、Service、IntentService等?

因此,当我的应用程序启动时,我最初启动一个启动活动,该活动显示加载指示器,向用户显示加载状态,处理一些初始操作(例如签入我们的服务器应用程序,设置声级等)。

此时,我想在我的 SIP 服务器注册为 SIP 客户端,并坐在那里在后台监听传入呼叫,而其他活动可能会在前台运行(如时钟或带有网页的 WebView 等)。如果 SIP 呼叫传入,我需要后台 SIP 客户端来应答它并从可能存在的任何活动中接管屏幕。

最初,我从SipListener课的AsyncTask开始;但有两个顾虑:1)我不想冒内存泄漏的风险,2)在SIP服务器成功注册后,我无法让SIP客户端持续存在(因此,没有监听来电,更不用说应答了)。

接下来,我尝试将我的SipListener类移植到Service中。但问题是我什至无法注册,因为 SIP 是一项网络服务,而且我遇到了主线程网络异常。

现在,我看到了这个IntentService选项,并想知道这是否是要走的路?

我正在学习Android,所以我知道足够危险,正如他们所说!有人可以指出我正确的方向吗?

您可以在服务中实现 Sip,而不仅仅是侦听器,并在来电(消息)上启动活动或推送通知。

如果你想挑战自己,请查看 Linphone for android. 尝试构建它,这对您来说将是很好的实践,使用它并进行自定义。 他们还有一个服务,可以帮助你。

祝你好运。

最新更新