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.