着信/発信通話を追跡し、通話記録をデータベースに保存するアプリケーションに取り組んでいます。昨日、アプリケーションが OS によって終了され、警告メッセージが表示されるシナリオを見ました(エラー: アプリケーションが応答していません)。アプリケーションがOSによって終了された後。アプリケーションは、着信/発信通話を再び聞くことができません。と思いきや、アプリの異常終了でアプリフォンリスナーが登録解除された。System.Exit(0)
アプリケーション終了のOS 呼び出し
私がこのアプローチに従えば:-
public static void main(String[] args)
{
/**
* Registering the phone Listener.
* */
Phone.addPhoneListener( new ConcretePhoneListener() );
new SampleUIApp().enterEventDispatcher();
}
この場合、アプリケーションの起動時に毎回、電話リスナーが登録されます。また、アプリケーション (Phone Listener) が複数回登録されています。単一のイン/アウト コールの手段
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 ## " );
}
}
このアプローチは、OS によって異常終了するまで正常に機能します。RuntimeStoreManagemnet は null ではありませんが、Application Phone-listener は Derigester であるためです。
これを手伝ってください。