Wie vermeide ich schwarzen Bildschirm bei startActivity, wenn FLAG_ACTIVITY_CLEAR_TASK gesetzt ist?

Ich starte eine neue Aktivität mit folgendem Befehl:

Intent intent = new Intent(this, MyNewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
overridePendingTransition(0, 0);

WährendMyNewActivity wird gestartet, ein schwarzer Bildschirm wird angezeigt.

Wenn ich entferneIntent.FLAG_ACTIVITY_CLEAR_TASK wird die Aktivität gestartet, ohne dass zu irgendeinem Zeitpunkt ein schwarzer Bildschirm angezeigt wird (stattdessen wird die vorherige Aktivität angezeigt, während die neue geladen wird).

Gibt es eine Möglichkeit, diesen schwarzen Bildschirm zu vermeiden? Das Entfernen der Flags scheint keine Option zu sein (ich muss den gesamten Stapel der aktuellen Aufgabe löschen und eine neue Aktivität als Stammaktivität starten).

BEARBEITEN Ich füge einen sehr einfachen Code hinzu, der das Problem reproduziert (setze ein dunkles Thema wieTheme.AppCompat für die App). Der schwarze Bildschirm wird nur für sehr kurze Zeit angezeigt (hängt davon ab, wie viele Aufgaben die empfangende Aktivität beim Start ausführt), aber Sie können ihn sehen. Wenn Sie nicht @ verwendFLAG_ACTIVITY_CLEAR_TASK, der schwarze Bildschirm wird nicht angezeigt und der Übergang ist glatt:

Hauptaktivitä

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, MyNewActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                overridePendingTransition(0,0);
            }
        });
    }
}

MyNewActivity

public class MyNewActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new);
    }
}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_bright">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CLICK ME!" />

</RelativeLayout>

activity_new.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_light">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="I am the new activity!" />

</RelativeLayout>

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage