Ver mensagens sem resposta | Ver tópicos ativos Hoje é 22 Jun 2017, 23:14



Este tópico está trancado, você não pode editar mensagens ou enviar respostas.  [ 8 Mensagens ] 
 Tela Splash 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 14 Mai 2017, 13:28
Mensagens: 5
Mensagem Tela Splash
Oi gente, estou com um problema com a criação da minha tela splash. Ela funciona normalmente: inicializa, vai para a segunda tela e pronto. O problema é quando pressiono o voltar (ela minimiza, não fecha). Quando restauro (quadradinho) a aplicação volta começando pela tela splash, como se reinicia-se. Isso só acontece quando pressiono o voltar

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/tela_splash_720_960"
    tools:context="matafechada.com.matafechada.MainActivity">


</android.support.constraint.ConstraintLayout>


MainActivity.java


package matafechada.com.matafechada;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            splash();
    }

    public void splash(){
        Handler handle = new Handler();
        handle.postDelayed(new Runnable() {
            @Override
            public void run() {

                Intent it = new Intent(MainActivity.this, TrilhasActivity.class);
                startActivity(it);
                finish();
            }
        }, 3000);

    }
}
 



AndroidManisfest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="matafechada.com.matafechada">


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">


        <activity android:name=".MainActivity" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".TrilhasActivity" android:label="@string/screen_trilhas_name"> </activity>

    </application>

</manifest>



activity_trilhas.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:verticalScrollbarPosition="defaultPosition"
    android:visibility="visible"
    tools:context="matafechada.com.matafechada.TrilhasActivity">


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        tools:layout_editor_absoluteX="47dp"
        tools:layout_editor_absoluteY="16dp" />

</android.support.constraint.ConstraintLayout>
 


TrilhasActivity.java

package matafechada.com.matafechada;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class TrilhasActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_trilhas);
    }
}
 


14 Mai 2017, 13:55
Perfil
Google employee
Google employee

Data de registro: 01 Jul 2013, 13:45
Mensagens: 2590
Localização: Rio de Janeiro
Mensagem Re: Tela Splash
Quando você usa o finish() na MainActivity, a TrilhasActivity se torna a única tela aberta. O botão pra voltar deveria fechar o aplicativo mesmo, qual é o problema nisso?

_________________
Quando seu problema for resolvido, clique na opção Editar no lado superior direito da sua primeira mensagem e coloque [Resolvido] no título.
Se resolveu o problema sozinh@, não esqueça de postar a solução, ela ajuda usuários em buscas no fórum.
Use os marcadores java e xml quando for postar.

Aprenda Java com esta apostila.


14 Mai 2017, 14:17
Perfil
What is Android?
What is Android?

Data de registro: 14 Mai 2017, 13:28
Mensagens: 5
Mensagem Re: Tela Splash
jeffersonlanzieri escreveu:
Quando você usa o finish() na MainActivity, a TrilhasActivity se torna a única tela aberta. O botão pra voltar deveria fechar o aplicativo mesmo, qual é o problema nisso?




Quando pressiono voltar ele minimiza (esconde), mas ao restaurar a aplicação (botão quadrado) ele volta para a primeira tela (tela splash).
Aplicativos como o Groupon e 99 taxi possuem essa tela splash, mas ao voltar e restaurar a aplicação ele não exibi novamente a splash.


16 Mai 2017, 13:15
Perfil
Google employee
Google employee

Data de registro: 01 Jul 2013, 13:45
Mensagens: 2590
Localização: Rio de Janeiro
Mensagem Re: Tela Splash
Como eu disse antes, o finish() na MainActivity faz a TrilhasActivity ser a única aberta, então o botão voltar vai encerrar o seu aplicativo. Esses aplicativos que você citou devem estar fazendo algum tipo de verificação, como se a tela de abertura já foi mostrada hoje ou nos últimos 30 minutos... algo assim.

_________________
Quando seu problema for resolvido, clique na opção Editar no lado superior direito da sua primeira mensagem e coloque [Resolvido] no título.
Se resolveu o problema sozinh@, não esqueça de postar a solução, ela ajuda usuários em buscas no fórum.
Use os marcadores java e xml quando for postar.

Aprenda Java com esta apostila.


18 Mai 2017, 14:25
Perfil
What is Android?
What is Android?

Data de registro: 14 Mai 2017, 13:28
Mensagens: 5
Mensagem Re: Tela Splash
jeffersonlanzieri escreveu:
Como eu disse antes, o finish() na MainActivity faz a TrilhasActivity ser a única aberta, então o botão voltar vai encerrar o seu aplicativo. Esses aplicativos que você citou devem estar fazendo algum tipo de verificação, como se a tela de abertura já foi mostrada hoje ou nos últimos 30 minutos... algo assim.



Ah entendi!
Vc teria alguma ideia de como implementar essa verificação?


22 Mai 2017, 10:40
Perfil
Google employee
Google employee

Data de registro: 01 Jul 2013, 13:45
Mensagens: 2590
Localização: Rio de Janeiro
Mensagem Re: Tela Splash
Usa SharedPreferences, +- assim:


    private boolean jaMostrouHoje() {
        boolean jaMostrouHoje = false;
       
        SharedPreferences sp = getSharedPreferences(this, 0);
        SharedPreferences.Editor editor = sp.edit();        
       
        int dia = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
       
        if (sp.getInt("dia") == dia) {
            jaMostrouHoje = true;
        } else {
            editor.putInt("dia", dia).commit();
        }
        return jaMostrouHoje;
    }
 


A MainActivity, você pode deixar assim:


public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        if (jaMostrouHoje()) {
            trocaTela();
        } else {
            splash();
        }
    }
   
    private void splash(){
        new Handler().postDelayed(new Runnable() {
            public void run() {
                trocaTela();
            }
        }, 3000);
    }
   
    private void trocaTela() {
        startActivity(new Intent(this, TrilhasActivity.class));
        finish();
    }
   
    private boolean jaMostrouHoje() {
        // implementação aqui...
    }
}
 


Faz o teste aí.

_________________
Quando seu problema for resolvido, clique na opção Editar no lado superior direito da sua primeira mensagem e coloque [Resolvido] no título.
Se resolveu o problema sozinh@, não esqueça de postar a solução, ela ajuda usuários em buscas no fórum.
Use os marcadores java e xml quando for postar.

Aprenda Java com esta apostila.


22 Mai 2017, 12:23
Perfil
What is Android?
What is Android?

Data de registro: 14 Mai 2017, 13:28
Mensagens: 5
Mensagem Re: Tela Splash
jeffersonlanzieri escreveu:
Usa SharedPreferences, +- assim:


    private boolean jaMostrouHoje() {
        boolean jaMostrouHoje = false;
       
        SharedPreferences sp = getSharedPreferences(this, 0);
        SharedPreferences.Editor editor = sp.edit();        
       
        int dia = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
       
        if (sp.getInt("dia") == dia) {
            jaMostrouHoje = true;
        } else {
            editor.putInt("dia", dia).commit();
        }
        return jaMostrouHoje;
    }
 


A MainActivity, você pode deixar assim:


public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        if (jaMostrouHoje()) {
            trocaTela();
        } else {
            splash();
        }
    }
   
    private void splash(){
        new Handler().postDelayed(new Runnable() {
            public void run() {
                trocaTela();
            }
        }, 3000);
    }
   
    private void trocaTela() {
        startActivity(new Intent(this, TrilhasActivity.class));
        finish();
    }
   
    private boolean jaMostrouHoje() {
        // implementação aqui...
    }
}
 


Faz o teste aí.



Deu certo! Vlw mesmo


23 Mai 2017, 12:48
Perfil
Google employee
Google employee

Data de registro: 01 Jul 2013, 13:45
Mensagens: 2590
Localização: Rio de Janeiro
Mensagem Re: Tela Splash
Nesse exemplo que eu postei, se você abrir o aplicativo hoje e depois só no próximo dia 23, o jaMostrouHoje() vai retornar true, então você poderia trocar por outras informações, como hora ou dia/mes/ano...

_________________
Quando seu problema for resolvido, clique na opção Editar no lado superior direito da sua primeira mensagem e coloque [Resolvido] no título.
Se resolveu o problema sozinh@, não esqueça de postar a solução, ela ajuda usuários em buscas no fórum.
Use os marcadores java e xml quando for postar.

Aprenda Java com esta apostila.


23 Mai 2017, 15:05
Perfil
Mostrar mensagens anteriores:  Organizar por  
Este tópico está trancado, você não pode editar mensagens ou enviar respostas.   [ 8 Mensagens ] 

Quem está online

Usuários vendo este fórum: AdrianoMM, aechiara, andepunk, Andrey, arilsonm, arnaldo.miranda, Ask Jeeves, AT-AT, Bass, bbourbon, BloggerCaOS, brian15, caciara, camilodev, Captain Typho, car.demarco, carlos.macleod, carminati, celson, cenatech, china, cosmotheoro, criscmaia, Cynthia, d.paim, DaDih*, Danilo Dias, danilosouza, Darkluna, Darth Maul, Darth Sidious, denisfln, diegorrborges, diemesleno, dikiloco, ederson_4, eduzortea, edwarvelarde, emersonalencar, epsilva, Everton Moreira, felipe.buarque, ferrodecaju, freak, gedoor, guitarro17, gusrp, gutem25, gutodias, hostdesigner, humberto, icarodavi, ijsilvestre, inaciofernandes, Jar Jar Binks, jasn, jcdeveloper, jgfelix, Joessi2007, jpespindola, Juliobcosta, kecyobarros, klyff, Kureiton, kusanaguy, leofernandesmo, levita, lillian.brandao, loferreira, luciano.sml, lufreitas, luizcarlosvb, luizneto79, malucouto, marcow, mateusff, mauriciomag, maurofjr, mcroft, Moisés Souto, mtomazzi, neimarguerra, nivea, nq6, On_7, pabarbosa, pamonteiro, Patrick, pererinha, pjorge, pxcx, Rafael, renan.fernandes, renatocoliveira, rerp7, Ricardo Chikasawa, rodrigo_corinthians, rogerio, rogerio.alcantara, rogeriokta, Rogério, Romulo, romuloigor, rotilho, Samantha, sephct, SERGIO RODRIGUES, snonca, talves, Tangerina, tassiovirginio, thiago20, thiaguim, thosjanas, tiagofalcao, Tognoli, tonylock, viniciusllima, wesley.messias, Wryel, yeltsinlima e 8 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi