Я работаю над приложением, которое отслеживает InComing/Исходящие звонки & сохраняет записи вызовов в базу данных. Вчера я видел сценарий. В котором приложение завершено ОС & появляется предупреждающее сообщение Up (Ошибка: приложение не отвечает). После завершения приложения OS. Приложение больше не может прослушивать входящие/исходящие вызовы. Я думаю, приложение Phone Listener не зарегистрировано ненормальным завершением приложения. Os вызывает System.Exit(0)
для прекращения примененияНе прослушивание PhoneListener после аномального завершения в Blackberry
Если я следовать этому подходу: -
public static void main(String[] args)
{
/**
* Registering the phone Listener.
* */
Phone.addPhoneListener(new ConcretePhoneListener());
new SampleUIApp().enterEventDispatcher();
}
В этом случае каждый раз при запуске приложения вверх, телефон слушатель зарегистрирован. И приложение (Phone Listener) зарегистрировано несколько раз. Средства для одного In/Out Зова я получаю multipule раза
void callConnected(int aCallId)
callDisconnected(int aCallId)
для sourt этого вопроса, я использую систему управления магазина RunTime. Для этого я использую следующий подход: -
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 не равно нулю, но Application Phone-слушатель Derigester.
, пожалуйста, помогите мне это.
Я думаю, вам сначала нужно избавиться от этих ошибок ANR, вместо того, чтобы пытаться их исправить только для того, чтобы ухудшить ситуацию. Вы можете сделать свое приложение «автозапуск при запуске» и «скрыть значок приложения», чтобы он запускался только один раз при загрузке, и пользователь не может вручную запустить его. О, и вам не нужно расширять 'UiApplication', если вам действительно не нужен GUI, вместо этого расширьте« Приложение ». –