Diferença entre Atividade e FragmentActivity


Respostas:


316

A FragmentActivityé uma subclasse Activitycriada para o Pacote de suporte do Android .

A FragmentActivityclasse adiciona alguns métodos novos para garantir a compatibilidade com versões mais antigas do Android, mas fora isso, não há muita diferença entre os dois. Apenas certifique-se de alterar todas as chamadas para getLoaderManager()e getFragmentManager()para getSupportLoaderManager()e getSupportFragmentManager()respectivamente.


4
Ei, eu não alterei as chamadas para getSupportLoaderManager () e getSupportFragmentManager () .. mas ainda está funcionando bem.
— Novato

31
É isso que o torna tão perigoso: P. FragmentActivityherda os métodos getLoaderManagere getFragmentManagerde Activitye, como resultado, o compilador não irá reclamar. Provavelmente, você está importando as classes LoaderManagere incorretas FragmentManagertambém. Verifique se você está importando essas classes do pacote de suporte ( android.support.v4.app), não do Android SDK ( android.app).
— Alex Lockwood

1
Podemos dizer que, se queremos usar fragmentos para a versão 2.x do Android, precisamos usar FragmentActivity nad para versões que suportam fragmentos, precisamos usar Activity.
— Novato

55
Eu acho que o que você está dizendo está correto. Mas apenas para ser 100% claro ... use Activityse estiver usando android.app.Fragment; use FragmentActivityse você estiver usando android.support.v4.app.Fragment. Nunca anexe a android.support.v4.app.Fragmenta a android.app.Activity, pois isso causará uma exceção.
— Alex Lockwood

13
Primeiro tente este tutorial (como usar Fragmentsem um aplicativo). Em seguida, continue neste tutorial (como usar os Fragments do pacote de suporte). Também vale a pena ler a documentação no site dos desenvolvedores.
— Alex Lockwood

4

FragmentActivityfaz parte da biblioteca de suporte , enquanto Activityé a classe padrão da estrutura. Eles são funcionalmente equivalentes.

Você sempre deve usar FragmentActivitye, em android.support.v4.app.Fragmentvez do padrão da plataforma Activitye android.app.Fragmentclasses. O uso dos padrões da plataforma significa que você depende de qualquer implementação de fragmentos usada no dispositivo em que está executando. Geralmente, eles têm vários anos e contêm bugs que foram corrigidos na biblioteca de suporte.


1
Nota: minSdkVersionda biblioteca de suporte é 14 desde a versão 26.xx
— Eugen Pechanec 01/10/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.