Como evitar a tela preta no startActivity quando FLAG_ACTIVITY_CLEAR_TASK está definido?
Estou iniciando uma nova atividade usando o seguinte:
Intent intent = new Intent(this, MyNewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
overridePendingTransition(0, 0);
EnquantoMyNewActivity
está sendo iniciado, uma tela preta é exibida.
Se eu removerIntent.FLAG_ACTIVITY_CLEAR_TASK
, a atividade é iniciada sem exibir uma tela preta a qualquer momento (em vez disso, a atividade anterior é mostrada enquanto a nova é carregada).
Existe alguma maneira de evitar essa tela preta? A remoção dos sinalizadores parece não ser uma opção (preciso limpar toda a pilha da tarefa atual e iniciar uma nova atividade como raiz).
EDITAR: Anexo um código muito simples que reproduz o problema (defina um tema sombrio, comoTheme.AppCompat
para o aplicativo). A tela preta é exibida por muito pouco tempo (depende de quantos trabalhos a atividade de recebimento realiza ao iniciar), mas você pode vê-la. Se você não usaFLAG_ACTIVITY_CLEAR_TASK
, a tela preta não é exibida e a transição é suave:
Atividade principal
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>
Obrigado!