【发布时间】:2017-10-09 17:15:00
【问题描述】:
我有一个消息和 SIP 应用程序需要在后台监听收到的消息、来电等,然后在各种活动中显示或输出它们(取决于消息类型)。我的问题是:完成 SIP 部分的最佳方法是什么? AsyncTask、Service、IntentService等?
所以,当我的应用程序启动时,我最初会启动一个启动活动,它会显示一个加载指示器,向用户显示加载状态,并处理一些初始事情(例如检查我们的服务器应用程序、设置声音级别等。 )。
那时,我想在我的 SIP 服务器上注册为 SIP 客户端,并坐在那里在后台监听来电,而其他活动可能在前台运行(例如时钟或带有网页等)。如果有 SIP 呼叫进来,我需要后台 SIP 客户端来接听它,并从可能存在的任何活动中接管屏幕。
最初,我从AsyncTask 开始我的SipListener 课程;但有两个担忧:1)我不想冒内存泄漏的风险,2)在成功注册到 SIP 服务器后,我无法让 SIP 客户端持续存在(因此,没有来电被监听,更不用说回答)。
接下来,我尝试将我的 SipListener 类移植到 Service。但问题是我什至无法注册,因为 SIP 是一种网络服务,而且我遇到了 Network-on-Main-Thread 异常。
现在,我看到了这个IntentService 选项,想知道这是否可行?
我正在学习 Android,所以我知道就像他们说的那样危险!有人能指出我正确的方向吗?
【问题讨论】:
标签: android android-asynctask android-service android-intentservice jain-sip