Я хочу портировать систему Java на Android и сделать ее доступной для сторонних приложений через прозрачный автономный сервис, чтобы она напоминала системную библиотеку.
Эта система представляет собой интерпретатор VoiceXML, который будет интерпретировать документы, обработанные сторонним приложением, и отправить ему результаты.
Интерпретация этих документов может занять произвольное количество времени, даже очень долгое.
Верно теперь у меня есть служба, которая создает интерпретатор, который выполняет всю работу. Я делаю это с помощью метода startJVoiceXML().
Проблема в том, что моя служба закрывается Android с ошибкой ANR примерно через 20–30 секунд после создания службы.
Но если я не буду выполнять какую-либо тяжелую работу (только код перед тем, как) над этим методом, Служба продолжит работать и не будет закрыта в течение гораздо более длительного времени.
Do Мне нужно создать тему, чтобы сделать то, что мне нужно?
Я добавляю несколько комментариев в код для дальнейшего объяснения.
спасибо!
public synchronized void startJVoiceXML(final URI uri) throws JVoiceXMLEvent, InterruptedException
{
AndroidConfiguration config = new AndroidConfiguration();
jvxml = new JVoiceXmlMain(config);
jvxml.addListener(this);
jvxml.start();
int a=0;
//the wait is not the problem, the jvxml object run method calls jvxmlStarted in the service that does a .notifyAll() on this thread
this.wait();
//this while is just to "do" some long running operation in order to emulate the Interpreter behaviour
while(a
Подробнее здесь: https://stackoverflow.com/questions/106 ... id-service
Как избежать ANR в автономной службе Android ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Android AudioManager.adjustStreamVolume: вызов фонового потока, чтобы избежать ANR?
Anonymous » » в форуме Android - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как избежать замораживания приложений и ANR на каждом втором запусках
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-