Я пишу приложение для Android 2.1, которое должно отображать диалоговое окно для пользователя, когда внешнее событие вызывает один из GPIO. Я написал драйвер устройства Linux и написал интерфейс пользовательского пространства JNI.
Когда мое приложение запускается, оно запускает удаленную службу, которая опрашивает драйвер устройства. С помощью aidl мне удалось установить связь между действием и службой, однако, когда я закрываю действие, я хочу, чтобы служба повторно запустила действие.
Я добился этого, используя следующий код: (в сервисе)
Intent dialogIntent = new Intent(getBaseContext(),WiegandDemoActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(dialogIntent);
Сразу после этого я хочу общаться с помощью aidl, поэтому я использовал:
synchronized (listeners) {
for (WiegandListener listener : listeners) {
try {
listener.handleWiegandUpdated();
...
Активность переносится на передний план, но сообщение об этом не доходит.
почему это происходит? (когда активность впереди, все работает нормально)
Я не хотел публиковать здесь весь код, потому что он большой, но если вам нужна дополнительная информация, не стесняйтесь спрашивать.
Спасибо.