我正在开发一个应用程序,并且能够在应用程序内部开始打电话但是当它结束时我想恢复应用程序并保留信息并弹出即可。
我已经能够拨打电话并弹出单独的实例,但无法将它们组合在一起。这个问题已在今年3月得到解答,但我想看看是否还有其他人想出了更好的主意。谢谢。
答案 0 :(得分:5)
查看活动生命周期图,当收到电话呼叫时,应用程序调用{{1}}方法。我能想到的是使用onPause()
从线程写入数据来保存数据,无论应用程序是否再次对用户不可见,该线程都会运行,无论是在调用侦听器中执行此操作还是在SharedPreferences
方法中。但更实际的方法是使用onPause()
方法放置最近将在onSaveInstanceState()
方法中恢复的所有相关数据。
在这里阅读更多信息:
http://developer.android.com/reference/android/app/Activity.html#onRestoreInstanceState(android.os.Bundle) http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle) http://developer.android.com/reference/android/telephony/PhoneStateListener.html
在onRestoreInstanceState()
课程中,您可以使用一些PhoneStateListener
标记是否已进行通话,何时进入flags
州,然后在CALL_STATE_RINGING
检查是否打电话是因为当电话什么都不做时IDLE状态一直在发生,但是当你有一个标志时,你可以检查CALL_STATE_IDLE
做某事并改变标志,所以只要听众再次进入{{1}你的国旗将被倒置,所以不再采取任何行动。只是一个想法。
编辑: 在您的活动/服务类中添加PhoneStateListener类作为内部类,并使用if(flag)
注册电话状态侦听器。我希望你能找到自己的方式
CALL_STATE_IDLE