1

在 Android 10 中从后台启动活动受到限制。我正在开发 Voip 通话应用程序。所以由于这个限制,我已经通过挂起的意图从服务启动了活动。每当用户在提示通知中单击答案时,我都会将他们引导至特定活动。

我的问题是,在通知中点击应答操作后,活动没有快速启动。首先是一个白屏,然后是加载活动。因此,A 人和 B 的通话时间不同。在延迟后加载呼叫活动也不是一个好的活动。

在whatsapp中,一旦我点击回答,立即启动活动,同时通话时间也开始了。所以它真的很好。我在whatsapp中加载活动和通话时间计时器没有遇到任何延迟。

我怎样才能在我的应用程序中实现这样的目标。请任何人帮我解决这个问题。

我已经在版本 10 和 8 的两个不同设备中测试了从 Notification 接听来电。下面是接听来电的过程。(我正在使用 Pjsip 库)

  1. 轻按接听时,立即设置状态 PJSIP_SC_OK。(发送200 OK)
  2. 其他人将回复 200 OK 响应。
  3. 之后,调用状态将被更改并捕获并发送到其他类进行处理。
  4. 使用处理程序将所需的消息传递给 Activity。
  5. 收到消息的活动将根据该消息进行处理。
  6. 如果活动收到通话确认消息,则仅设置通话连接状态屏幕,然后启动计时器....

在上述第一步之后,在通话连接屏幕中启动计时器所需的时间为 1.xx 秒(Android 10)和 2 秒(Android 8)。

在 Activity 的 onCreate 中,我在显示布局之前正在做以下工作,

  1. 设置视图可见性,设置图像,还使用位图调整图像大小。测试时发现在 Oreo 版本中处理 Activity 的 Oncreate 需要 0.65 秒,而在 Q 版本中只需要 0.27 秒。不仅是奥利奥,还有一些旧版本。

这就是为什么我得到时差......我该怎么办?

一旦用户在通知中点击接听,我需要立即显示呼叫连接屏幕,并且不会出现白屏。Whatsapp 能够实现 dat。那么如何在我的 voip 通话应用程序中实现这一点?

4

2 回答 2

0

如果没有源代码,就很难提出任何建议或尝试任何解决问题的方法。可能会使用捆绑包创建待处理的意图并利用广播接收器通过自定义广播来处理事件?

于 2020-07-18T08:20:29.603 回答
0

可能是因为你在 onCreate 中做了太多的工作,它会延迟渲染视图。将其中的一些代码移出 onCreate 并查看它是否可以加快速度。

于 2020-07-20T03:09:49.103 回答