#android
Вопрос:
Документация для Intent.FLAG_ACTIVITY_NEW_TASK
государств:
При использовании этого флага, если задача уже выполняется для действия, которое вы сейчас запускаете, то новое действие не будет запущено; вместо этого текущая задача будет просто выведена на переднюю часть экрана с состоянием, в котором она находилась в последний раз.
И я ожидал, что в следующем сценарии будет создан только один экземпляр OfflineActivity
, однако это не так, в следующих примерах кода всегда создается новый экземпляр OfflineActivity
в новой задаче(одна и та же задача для всех OfflineActivity
экземпляров).
public class StatusReceiver extends BroadcastReceiver {
/**
Current: Every time onReceive is invoked a new instance of OfflineActivity is created
Expected based on docs: The first time onReceive is invoked a new Instance of OfflineActivity
is created, after this, every time onReceive is invoked the instance of OfflineActivity
already created receives the intent in onNewIntent method.
*/
@Override
public void onReceive(Context context, Intent intent) {
Intent newIntent = new Intent(context, OfflineActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);
}
}
Если я задам launchMode="singleTop"
в AndroidManifest.xml
файле для OfflineActivity
, то поведение будет таким , каким я ожидал, если оно не launchMode
задано(по умолчанию launchMode="standard"
).
Я был бы очень признателен, если бы кто-нибудь смог объяснить, почему это происходит?