Я добавил пользовательскую схему URL в свое приложение Android 4+, чтобы иметь возможность глубокой ссылки на некоторые представления / действия:
// AndroidManifest.xml
...
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="myapp"/>
<data android:host="webservice"/>
</intent-filter>
</activity>
// MainActivity
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
if (intent != null && Intent.ACTION_VIEW.equals(intent.getAction())) {
Uri uri = intent.getData();
if (uri.getScheme().equalsIgnoreCase("myapp") && uri.getHost().equalsIgnoreCase("webservice")) {
Intent settingsIntent = new Intent(MainActivity.this, WebServiceSettingsActivity.class);
startActivity(settingsIntent);
}
}
}
Это прекрасно работает, когда используется ссылка типа myapp://webservice/something
мое приложение запускается, и отображается WebServiceSettingsActivity
.
НО: При нажатии кнопки "Назад" снова отображается WebServiceSettingsActivity
.Кажется, что MainActivity
перезапускается с тем же намерением, что и раньше, и, таким образом, настройки отображаются снова ...
Это может повторяться бесконечно.Как это решить?