"来电" Home Press

时间:2016-04-27 13:16:21

标签: java android

我正在开发一个SIP电话应用程序,并且有一些网络事件,例如来自粘性后台服务转发的来电。发生这种情况时,我会打开IncomingCallActivity,显示常用控件,例如"回答","拒绝"," deflect"(到语音框)等等。 / p>

虽然这一切都很完美,但是当您按下主页按钮时显示通知(因此您不会丢失来电),有时会发生,一旦按下&#34,Android就会终止我的活动;主页"

嗯,这很糟糕,附加了几个网络内容,单击时,通知点击时没有任何指示。

在清单中,活动有

android:launchMode="singleTask"

要避免,通知始终会创建新来电的实例。

虽然我知道savedInstanceState Bundle,但我认为这个活动是"特殊的" - >那么,是否有办法迫使Android在响铃时让我的活动保持活力,至少,...说,30秒?

我尝试了什么:

@Override
protected void onDestroy() {
    if (answer_clicked || decline_clicked || hangUpDuringRing)
        super.onDestroy();
}

这是一次尝试,而不是告诉Android"有一个Destroy()挂起。 结果如下:

Uncaught application level exception. This is a crash point.                                                                                        
(+) java.lang.RuntimeException: Unable to stop activity
android.util.SuperNotCalledException

对于这种特殊情况,我可以采取另一种方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

似乎只需使用persistent中活动的manifest属性即可解决我的问题。

    <activity
        android:name=".ui.RingingActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:launchMode="singleTask"
        **android:persistent="true"**
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">
    </activity>

我对此并不了解(我还是Android的新手),但自从我使用它以后,没有更多被破坏的活动。