В документации для Android я прочитал, что, установив свойство ActivityMode Activity в singleTop OR, добавив флаг FLAG_ACTIVITY_SINGLE_TOP
к моему намерению, вызов startActivity(intent)
будет повторно использовать один экземпляр Activity и дать мне Intent в onNewIntent
обратный вызов. Я делал обе эти вещи, и onNewIntent
никогда не срабатывает, и onCreate
срабатывает каждый раз. В документах также указано, что this.getIntent()
возвращает намерение, которое было впервые передано в действие, когда оно было впервые создано. В onCreate
я звоню getIntent
, и каждый раз получаю новый (я создаю объект намерения в другом действии и добавляю к нему дополнительный файл... это лишнее должно быть одинаковым каждый раз, если он возвращал мне тот же объект намерения). Все это заставляет меня поверить, что моя деятельность не действует как "единственная вершина", и я не понимаю, почему.
Чтобы добавить некоторый фон в случае, если я просто пропустил требуемый шаг, вот объявление активности в манифесте и код, который я использую для запуска этой операции. Сама деятельность не делает ничего, что стоит упомянуть в отношении этого:
в AndroidManifest.xml:
<activity
android:name=".ArtistActivity"
android:label="Artist"
android:launchMode="singleTop">
</activity>
в моей вызывающей деятельности:
Intent i = new Intent();
i.putExtra(EXTRA_KEY_ARTIST, id);
i.setClass(this, ArtistActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);