2012-06-11 6 views
0

Как выйти из приложения ежевики из другого приложения программно.Как выйти из приложения ежевики из другого приложения программно?

например. В Blackberry я устанавливаю два приложения, чем мне нужно выйти из второго приложения из первого приложения или выйти из другого приложения из моего приложения.

ответ

1

Самый чистый подход IMHO заключается в реализации интерфейса GlobalEventListener в приложении, которое вы хотите закрыть. Затем, из вызывающего приложения, отправьте глобальное событие с помощью собственного собственного кода и дайте приложению прослушивания закрыть себя контролируемым образом.

Пример:

В приложении вы хотите закрыть:

 public class YourCustomApp extends UiApplication implements GlobalEventListener { 
      public static final long PID = <unique id for your app here>; 
      public static final int CLOSE_APP_CODE = <your code here>; 

      public void eventOccurred(long pid, int msgCode, int data1, Object object0, Object object1) { 
       if(pid == PID){ 
        switch(msgCode){ 
         case CLOSE_APP_CODE: 
          controlledClose(); //This method could be, System.exit(0) if no other action is required 
          break; 
        } 
       } 
      } 

     } 

В приложении вызывающем:

 ApplicationManager.getApplicationManager().postGlobalEvent(PID, CLOSE_APP_CODE, 0, null, null); 

Во втором фрагменте кода, вы должны заменить ИНТ и долго коды с правильными. Вызывающее приложение должно передать правильные значения. Вы также можете поместить коды в библиотеку и позволить обеим приложениям использовать значения оттуда. Удостоверьтесь, что PID уникален по всей стране, так что он не сталкивается с другими приложениями в системе. Хорошей практикой является использование полного имени пакета вашего приложения, а затем щелчок правой кнопкой мыши -> «преобразование строки в длинный» в плагин eclipse.

UPDATE:
Хакерный способ: вы можете попробовать использовать EventInjection для ввода из своего приложения ключевого комбо, которое может закрыть определенное приложение. Например, приложение камеры закрывается при нажатии клавиши ESC. Поэтому мы могли бы попытаться закрыть его по этой линии:

EventInjector.invokeEvent(new EventInjector.KeyCodeEvent(EventInjector.KeyCodeEvent.KEY_DOWN,Characters.ESCAPE, 0)); 

Этот подход крайне ненадежен. Иногда это не работает, и вам может потребоваться тонкая настройка инъекции путем добавления коротких Thread.sleep вызовов после каждого введенного события. Или вам может потребоваться вызвать код инъекции из потока Ui.

Не забудьте присвоить приложению разрешения на ввод ключей.

+0

Спасибо за ur replay, но мне нужно выйти из другого приложения, такого как Facebook, Twitter или приложение Blackberry BlackBerry, как камера, Wi-Fi, так как я могу выйти или заблокировать или запустить приложение в приложении Background.other. не сделано мной, так как я могу управлять им. – Rajkiran

+0

Вы не можете этого сделать, потому что он управляется ОС. Механизма не существует. В лучшем случае вы можете добавить другое приложение в фоновом режиме. –

+0

Если вы не используете инъекции событий ... –

Смежные вопросы