我正在开发一个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
对于这种特殊情况,我可以采取另一种方法吗?
提前致谢!
答案 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的新手),但自从我使用它以后,没有更多被破坏的活动。