我正在开发跟踪传入/传出呼叫并将呼叫记录保存到数据库中的应用程序。昨天我看到一个场景,应用程序被操作系统终止并弹出警告消息(错误:应用程序没有响应)。应用程序被操作系统终止后。应用程序无法再次收听来电/去电。我认为,Application Phone Listener 因应用程序异常终止而未注册。操作系统调用System.Exit(0)
应用程序终止
如果我遵循这种方法:-
public static void main(String[] args)
{
/**
* Registering the phone Listener.
* */
Phone.addPhoneListener( new ConcretePhoneListener() );
new SampleUIApp().enterEventDispatcher();
}
在这种情况下,每次应用程序启动时,都会注册电话监听器。并且应用程序的(电话监听器)注册了多次。单次呼入/呼出的手段我得到了多次
void callConnected( int aCallId )
callDisconnected( int aCallId )
为了解决这个问题,我正在使用 RunTime Store Management System。为此,我使用以下方法:-
private static void registeringPhoneListener()
{
RuntimeStore mRuntimeStore = RuntimeStore.getRuntimeStore();
final long GUID = 0xba9e3b33ac5fe37eL;
String msPhoneListenerString = null;
if(mRuntimeStore.get(GUID) != null)
{
Log.debug( "PhoneListener is Already Implemented ## ");
}
else
{
Phone.addPhoneListener( new ConcretePhoneListener() );
mRuntimeStore.put(GUID, "PhoneListener");
Log.debug("PhoneListener Implemented First Time ## " );
}
}
这种方法工作正常,直到我被操作系统异常终止,因为 RuntimeStoreManagemnet 不为空,但应用程序电话侦听器是 Derigester。
请帮我解决这个问题。