2013-02-25 3 views
3

Я создал приложение, которое создает и прослушивает собственный URL-адрес. Моя проблема заключается в нескольких экземплярах приложения. Например, я создаю URL-адрес и отправляю его своему другу через sms. После этого я открываю этот sms (содержащий url) в моем приложении. Это создаст новый экземпляр моего приложения, которое откроет этот URL. Я хочу, чтобы в каждом случае должен быть только один экземпляр. Как я это добьюсь.Как удалить несколько экземпляров приложения

Спасибо,

ответ

2

Набор android:launchMode="singleTop" к вашей деятельности в AndroidManifest.xml, который открывает URL. Например:

<activity android:name="com.abc.MainActivity" android:label="app_name" 
      android:launchMode="singleTop"> 

Кроме того, если вы хотите, чтобы поймать новый Intent затем переопределить следующий метод в коде деятельности:

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    setIntent(intent); //set new intent as current intent 
} 
+0

Я понимаю, что это будет поддерживать только одно существование любой активности в стеке. нет? – user2070603

+0

Да, но также позволит вам получать новые запросы о намерениях методом 'onNewIntent'. – waqaslam

3

Вы можете добавить атрибут android:launchMode="" в activity тег, в файле манифеста, и установить один из следующих вариантов:

  1. стандарт: система всегда создает новый экземпляр деятельность в целевая задача и направляет ее намерение.
  2. SingleTop: Если экземпляр деятельности уже существует в верхнем целевой задачи, система направляет намерение этого экземпляра посредством вызова его методы onNewIntent(), а не создавать новый экземпляр Мероприятия.
  3. singleTask: система создает активность в корне новой задачи и направляет ее на намерение. Однако, если экземпляр активности уже существует, система направляет намерение на существующий экземпляр посредством вызова его метода onNewIntent(), вместо того, чтобы создавать новый .
  4. singleInstance: То же, что и singleTask, за исключением того, что система не запускает любые другие действия в задачу, содержащую экземпляр. Активность всегда является единственным и единственным членом ее задачи.
0

Используйте android:launchMode="singleTask" к вашему Activity в AndroidManifest.xml. Для получения дополнительной информации, пожалуйста, проверьте этот документ на LaunchMode of an Activity.

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