2014-10-13 2 views
3

Вот мои сценарии:Резюмируя приложение (активность) на намерения получить, когда активность OnPause

  • пользователь открывает приложение, и использует его => приложение находится в одном из экранов
  • пользователь перемещает приложение в фоновом режиме с помощью клавиши «Домой»
  • Пользователь начинает просмотр и просматривает мой сайт. С помощью веб-сайта некоторые ссылки открывают приложение.
  • Пользователь нажимает на ссылку в браузере и приложение запускается, НО даже если активность включена, она не возобновляется, а начинается снова и снова, поэтому текущий сеанс теряется.

Моя основная деятельность с использованием намерений фильтрации данных, поэтому я добавил:

<activity android:name=".HomeActivity" 
      <intent-filter> 
       <data android:scheme="myprop" /> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 
      </intent-filter> 
    </activity> 

так, когда пользователь нажимает на пользовательский URL в браузере, мое приложение просыпается и начинает свою деятельность. Как я уже говорил, если мой HomeActivity равен (это означает, что пользователь уже использовал его), можно ли просто возобновить его (и, конечно, разобрать параметры myprop), сохранив текущий пользовательский прогресс?

+0

Какой IDE вы использовали для развития? –

+0

Check: http://stackoverflow.com/questions/6337217/how-to-return-to-the-latest-launched-activity-when-re-launching-application-afte –

+0

Проблема в том, что я не запускаю приложение из IDE, приложение запускается, когда пользователь нажимает ссылку в Chrome/Browser – Alin

ответ

2

Вам необходимо определить режим запуска вашей активности для одного экземпляра. Чтобы сделать это, обновить активность в Android Manifest: android:launchMode="singleInstance"

После этого откроется существующая деятельность, и вы получите обратный вызов для Activity.onNewIntent(Intent intent)

+0

Я думаю, что это правильный подход, однако я вижу странное поведение: открывая приложение, когда пользователь нажимает на браузер, отлично работает, как я и хотел, когда я запускаю приложение из пусковой установки, это не возобновляется, как раньше ... он просто закрывается. Я не знаю, как это объяснить. Если приложение не запускается вообще, и я начинаю с значка Launcher, он работает в первый раз. Второй раз я нажимаю значок, который он только открывает и закрывает, а onCreate, onNewIntent или onResume не вызывается ... Только для записи у меня есть SplashActivity, который показывает изображение, а затем вызывает startActivity – Alin

+0

Добавлен вопрос здесь; http://stackoverflow.com/questions/26341067/activity-not-being-started-from-launcher-when-using-singetintance – Alin

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