Я наблюдал такое странное поведение на устройствах Android 8.0.
Во время обеда приложения отображается экран-заставка, как и ожидалось, и выполняется переход к следующему действию (MainActivity). Если я нажму кнопку «Назад» в MainActivity, он снова покажет экран-заставку и сам вернется в MainActivity.
Это происходит только в устройствах Android 8.0, проверенных в Samsung S7 и Nexus 5X. Где, как это работало без проблем в Android 5.0 (Samsung J7).
Здесь я добавил NoHistory = true в свою активность всплеска, а также в тему всплеска. Код экрана-заставки, аналогичный приведенному здесь: xamarin android брызги
Что я пробовал:
- Добавление свойства oreo (стиль V26) android: windowSplashscreenContent вместо android: windowBackground в тему. пример ссылки
- Добавление finish () в экран-заставку после навигации работает, но показывает некоторый эффект сбоя, кроме того, я хочу знать причину вышеуказанного поведения.
Благодарим за любые подсказки / основную причину этой проблемы. Спасибо
Изменить: всплеск кода:
[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : AppCompatActivity
{
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
}
// Launches the startup task
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(SimulateStartup);
startupWork.Start();
}
// Simulates background work that happens behind the splash screen
private async void SimulateStartup()
{
await Task.Delay(1000); // Simulate a bit of startup work.
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
//Finish();
}
public override void OnBackPressed()
{
}
}
Тема:
<style name="InspectTheme.Splash" parent ="Theme.AppCompat.Light.NoActionBar">
<!--<item name="android:windowSplashscreenContent">@mipmap/ic_splash</item>-->
<item name="android:windowBackground">@mipmap/ic_splash</item>
<item name="android:windowNoTitle">true</item>
<item name="android:noHistory">true</item>
<item name="android:windowFullscreen">true</item>
Added device screen recording here
Образец кода загружен здесь
OnBackPressed
в MainActivity, запретить кнопку возврата, как этот кодpublic override void OnBackPressed() { }
, если он все еще не работает, не могли бы вы предоставить демонстрацию своего экрана-заставки? Я тестирую docs.microsoft.com/en-us/ xamarin / android / user-interface / ссылка, я не могу воспроизвести эту проблему, она работает нормально в Nexus 5X - person Leon Lu - MSFT   schedule 15.05.2019