背面的Android Oreo(8.0)显示启动画面

时间:2019-05-14 09:27:17

标签: android xamarin xamarin.android android-8.0-oreo

我已经在android 8.0设备上观察到了这种奇怪的行为。

在应用午餐上,按预期显示启动屏幕,然后移至下一个活动(MainActivity)。如果我在MainActivity中按下“后退”按钮,它会再次显示启动屏幕,然后单独返回到MainActivity。

这仅在Samsung S7和Nexus 5X中检查的Android 8.0设备中发生。 在Android 5.0(Samsung J7)中没有任何问题的地方可以工作。

在这里,我在飞溅活动以及飞溅主题中添加了NoHistory = true。 启动屏幕代码类似于此处说明的代码:xamarin android splash

我尝试过的事情:

  • 添加oreo属性(V26样式)android:windowSplashscreenContent而不是 主题中的android:windowBackground。 example link
  • 导航后在启动画面中添加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>

添加了设备屏幕记录here

示例代码已上载here

1 个答案:

答案 0 :(得分:0)

我在设备中测试您的代码,此问题与

有关 {。{1}}中的

<item name="android:windowIsTranslucent">true</item>

如果我删除此行,则表明该GIF正在运行。

enter image description here

现在有styles.xml

InspectTheme