我正在开发一个WebRtc呼叫应用程序。当我的应用程序在后台时,来电呼叫来自呼叫活动PopsUp进行呼叫。当呼叫挂断时,我需要将应用程序发送到最近的后台状态。
所以我找到了一个解决方案moveTaskToBack()
,它运行得很完美,但问题是在调用Activity完成后它显示最后一个活动2或3秒然后返回到最近的应用程序。也在onStop()
中尝试过,但结果保持不变。
@Override
protected void onDestroy() {
moveTaskToBack(true);
}
有moveTaskToBack()
没有任何延迟的更好的替代方案吗?如果有人需要更多关于问题的澄清,请在评论中告诉我。提前致谢。
答案 0 :(得分:0)
你不应该这样做onDestroy,因为不能保证在Activity Lifecycle中调用它。
在onStop()方法中,应用程序应释放用户未使用时几乎所有不需要的资源。例如,如果您在onStart()中注册了BroadcastReceiver以侦听可能影响UI的更改,则可以在onStop()中取消注册广播接收器,因为用户无法再看到UI。使用onStop()释放可能泄漏内存的资源也很重要,因为系统有可能在不调用活动的最终onDestroy()回调的情况下终止托管活动的进程。
问题可能是调用onDestroy所需的时间。您可以尝试在完成活动的地方调用它。