![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Lanzar una actividad cada vez que cambia el version code
Hola.
Podrian darme una mano? Estoy necesitando poner un mini tutorial a una app. Algo instructivo debido a que no siempre se trata de gente jovenes dominantes de la tecnologia. Tambien hay gente mayor. Pero encontré una libreria que me gustó mucho: appIntro. Es algo como Tapatalk, si lguien tiene tapatalk se dará cuenta que cada vez que se actualiza, la abres, pasas por un mini tuto con una actividad y un par de fragmentos. Con la libreria ya lo tengo todo. Pero necesito lanzar esta actividad cada vez que la app se actualiza o como ultimo recurso, lanzarla por unica vez, la primera vez que se abre la app. Ojalá alguien sepa como hacerlo. Muchas gracias. Saludos. Última edición por gonza28 Día 14/10/15 a las 22:55:43 |
|
|
|
#2
|
||||
|
||||
|
Yo tenía una app que también tenía tutorial inicial, lo que hacía era almacenar un booleano en una SharedPreference con el nombre "vistoTutorial".
Si por alguna razón ese tutorial cambiaba en alguna versión posterior de la app (a lo mejor pasaban 2 o 3 versiones sin tenerlo que cambiar pero en la 4ª aparecía una opción nueva que si que era suficientemente novedosa como para explicarla) entonces modificaba el nombre a "vistoTutorial2". Luego además ya al final rizaba el rizo, y es que los Fragments involucrados en una versión ya vista no los añadía al ViewPager (lo hacía con un ViewPager). |
| Gracias de parte de: | ||
|
#3
|
|
|
Cita:
Pero lo que necesito es llamar a esa actividad si el versión code cambia. Y llamarla por única vez. Hasta que el versión code vuelva a cambiar. O de otra manera cualquiera. Si ves algo parecido por ahí, hazme saber por favor. Enviado desde mi SM-N910U mediante Tapatalk |
|
#4
|
||||
|
||||
|
El Version Code se obtiene así:
getPackageManager().getPackageInfo(context.getPack ageName(), 0).versionCode A partir de ahí, es lo mismo que te he dicho antes pero almacenando el Version Code en una SharedPreference, si es distinto del que tenías almacenado antes lanzas la Activity. |
| Gracias de parte de: | ||
|
#5
|
|
Lo tengo. Con tu ultimo mensaje, recordé un viejo proyecto de tematizacion cuando creabamos temas para Nova Launcher. alli tenia algo. este tema queda marcado como solucionado para alguno que tenga el mismo problema.
En la actividad principal o en mi caso en la clase splash: Bienvenido.class [PHP]public class MainActivity extends AppCompatActivity { private SharedPreferences prefs; @override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); prefs = getSharedPreferences(getResources().getString(R.st ring.app_name), 0); checkBuild(); ............... } public void checkBuild() { int buildNum = prefs.getInt("Build Number", 1); int currentVersion = 0; try { currentVersion = getPackageManager() .getPackageInfo(getPackageName(), 0).versionCode; } catch (NameNotFoundException e) { e.printStackTrace(); } if(currentVersion > buildNum) { Intent intent = new Intent(MainActivity.this, Prueba.class); startActivity(intent); finish(); SharedPreferences.Editor editor = prefs.edit(); editor.putInt("Build Number", currentVersion); editor.commit(); } } .............[/PHP] Cada vez que el versionCode cambia por una actualizacion, se lanzará la actividad, o un dialogo o lo que sea. A modo de prueba, basta con lanzar una Snackbar [PHP]public void checkBuild() { int buildNum = prefs.getInt("Build Number", 1); int currentVersion = 0; try { currentVersion = getPackageManager() .getPackageInfo(getPackageName(), 0).versionCode; } catch (NameNotFoundException e) { e.printStackTrace(); } if(currentVersion > buildNum) { Snackbar.make( findViewById(R.id.coordinatorLayout), R.string.cargando_datos, Snackbar.LENGTH_LONG) .show(); SharedPreferences.Editor editor = prefs.edit(); editor.putInt("Build Number", currentVersion); editor.commit(); } } .............[/PHP] Gracias y saludos. |
|
#6
|
||||
|
||||
|
Sólo un apunte, el valor por defecto de la SharedPreference debería ser 0, y no 1. Porque si no en la primera versión de tu app no saldrá el tutorial, lo hará a partir de la segunda versión.
|
| Gracias de parte de: | ||
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 22:31:13 (GMT +1)
HTCMania: líderes desde el 2007






