Fragmenttabhost rendimiento es lento?
He utilizado la v4 support lib
para FragmentTabHost
El requisito es que cuando estoy cambiando la pestaña uno a otro y otro, que está llamando
- java.lang.IllegalStateException: Actividad destruida - fragmento de Android
- Cómo detener la llamada onCreateView cuando cambia de ficha diferente (como tab1, tab2) en android?
- Inicializar Typeface en un fragmento
- App se está estrellando en la parte posterior presionado cuando el uso de mapa dentro de fragmento en android?
- Android AsyncTask - ¿por qué no se ejecuta doInBackground ()?
OnCreateView () & onActivityCreated () cada vez.
Es por eso que mi rendimiento del código es lento.
Entonces, ¿cualquier otra solución? Cómo aumentar el rendimiento en la ficha fragmento?
- Mis fragmentos en la pestaña viewpager no se actualizan
- Nuevo tema incorrecto de la biblioteca de soporte de preferencias en tiempo de ejecución
- Barra de herramientas y NavigationDrawer
- Uso de RoboFragment con FragmentManager
- PopBackStack hace que llamar a oncreateView del fragmento una y otra vez
- Cómo obtener el onWindowFocusChanged en Fragment?
- GetActivity () es nulo dentro de AlertDialog de un fragmento
- Reiniciar el fragmento dentro de la actividad
Suena como un olor a diseño.
Rediseñe su código para que el trabajo pesado se realice de forma asíncrona. Los fragmentos deben poder construirse rápidamente. Si hay un proceso grande que se necesita hacer para que un fragmento muestre información útil, ese trabajo debe hacerse de antemano o asincrónicamente después de que se crea el fragmento y el fragmento debe ser notificado para actualizar su contenido cuando el trabajo esté completo .
Lo primero que debe cuidar es mirar acerca de los cálculos / cargar un gran conjunto de datos debe ser lugares en un hilo de trabajo diferente que el hilo principal de la interfaz de usuario. La mejor opción para hacer eso (en mi opinión) es utilizar AsyncTask
. Puedes usar algo como esto en tu Fragmento:
private class LoadData extends AsyncTask<Void, Void, Void>{ @Override protected void onPreExecute(){ super.onPreExecute(); // this is the place where you can show // progressbar for example to indicate the user // that there is something which is happening/loading in the background } @Override protected void doInBackground(Void... params){ // that's the place where you should do // 'the heavy' process which should run on background thread } @Override protected void onPostExecute(Void result){ super.onPostExecute(); // you should update your UI here. // For example set your listview's adapter // changes button states, set text to textview and etc. } }
Esta es la manera en que puede hacer que sus pestañas funcionen más rápido. ¡Espero que esto te ayude! 🙂
Encontré una solución para eso. He insertado todos los websevices y código de transacción de base de datos en crear. Porque no creas en no llamar cada vez hasta que no te llame. Y la otra solución también está disponible, podemos usar
Fragment.show ();
& Fragment.hide (); método
Como una adición a Android-Developer: si ya está utilizando AsyncTask, recuerde que incluso cuando se utilizan múltiples AsyncTask, se ejecutan en segundo plano, pero todo de forma secuencial! Si desea más hilos para manejar sus tareas, echa un vistazo a este post, que explica perfectamente cómo lograrlo! ¿Ejecutar múltiples AsyncTasks al mismo tiempo – no es posible?
- Pantalla en blanco de Android en onBack en un archivo loadDataWithBaseURL
- Forma personalizada mientras conversas en android usando un archivo xml