【问题标题】:How to avoid black screen when Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK is set?Intent.FLAG_ACTIVITY_NEW_TASK 时如何避免黑屏 | Intent.FLAG_ACTIVITY_CLEAR_TASK 已设置?
【发布时间】:2015-07-07 09:01:36
【问题描述】:

在我的 android 应用程序中,我需要使用 Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK 来设置我的意图标志。我可以删除我以前的所有Activities 并以这种方式开始一个新的Activity。这是我下面的代码:

Intent intent = new Intent(Gerenxinxi.this, MainPart.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
overridePendingTransition(0,0);

但是,当我使用上面的代码时,我发现了一个闪烁的黑屏。如果我没有用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK设置intent flag,黑屏的闪烁就会消失。我的问题是:设置Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK时我该怎么做才能避免黑屏?

在我写这个问题之前,我发现有人有类似的问题。这是link 但是,这个问题的答案并不能解决我的问题。所以我再次问这个问题。希望任何人都可以帮帮我。谢谢。

【问题讨论】:

  • 你试过把overridePendingTransition(0,0);在完成()之前?
  • 这个我试过了,黑屏还是存在。

标签: android android-intent


【解决方案1】:

您看到的这个初始屏幕称为“预览”屏幕。您可以通过在主题中声明它来完全禁用它:

android:windowDisablePreview

<style name="Theme.MyTheme" parent="android:style/Theme.Holo">
    <!-- This disables the black preview screen -->
    <item name="android:windowDisablePreview">true</item>
</style>

【讨论】:

  • 谢谢你的回答,我马上试试你的方法~
  • 您的解决方案效果很好。感谢您的帮助!
【解决方案2】:

试试这个

Intent intent = new Intent(Gerenxinxi.this, MainPart.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();

【讨论】:

  • 感谢您的回答,我已经尝试过您的解决方案,但黑屏仍然存在。 Darshan Mistry 的回答可能会解决它。
  • 您是在慢速设备还是最近的设备上进行测试?
  • 一部安卓手机,系统为Android OS 4.2,不是慢速设备。
  • Darshan 可能完成这项工作的代码。我没看错是因为Zygote/Android应用进程出现黑屏。
【解决方案3】:

我只找到了一个解决方案,而不是显示黑屏显示应用程序主题背景。就我而言,它是白色的

     <application

            android:name="com.my.MyApplication"

            android:allowBackup="true"

            android:icon="@drawable/launcher"

            android:label="@string/app_name"

            android:theme="@style/Theme.MyTheme”>


   <style name="Theme.MyTheme" parent="android:style/Theme.Holo">
        <!-- This disables the black preview screen -->
        <item name="android:windowDisablePreview">true</item>
    </style>

【讨论】:

  • 谢谢你的回答,我马上试试你的方法~
【解决方案4】:

在你的风格中添加这一行

android:windowDisablePreview = true.

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多