我已经在android 8.0设备上观察到了这种奇怪的行为。
在应用午餐上,按预期显示启动屏幕,然后移至下一个活动(MainActivity)。如果我在MainActivity中按下“后退”按钮,它会再次显示启动屏幕,然后单独返回到MainActivity。
这仅在Samsung S7和Nexus 5X中检查的Android 8.0设备中发生。 在Android 5.0(Samsung J7)中没有任何问题的地方可以工作。
在这里,我在飞溅活动以及飞溅主题中添加了NoHistory = true。 启动屏幕代码类似于此处说明的代码:xamarin android splash
我尝试过的事情:
对此问题的任何提示/根本原因表示赞赏。谢谢
编辑: 代码启动活动:
[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>
添加了设备屏幕记录here
示例代码已上载here