Autore Topic: La spalsh screen parte a random  (Letto 334 volte)

Offline giupardeb

  • Utente junior
  • **
  • Post: 115
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Glaxy Note 4
La spalsh screen parte a random
« il: 22 Agosto 2015, 11:29:31 CEST »
0
Buongiorno ragazzi, nella mia applicazione uso una activity, che è il launcher di tutta l'applicazione, per controllare un database e creare dei file eventuali utili all'applicazione. Questo è il codice della mia spashscreen:

Codice: [Seleziona]
public class SplashScreen extends Activity {
    private MioDbHelper db;
    private ProgressBar pb;
    private Cursor c;
    private SQLiteDatabase DB;
    private File cityFile;
    private ArrayList<String> localitaVisitate = new ArrayList<>();
    private BufferedReader br;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //permette il fullscreen in maniera costante
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        this.requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_splash_screen);

        pb = (ProgressBar) findViewById(R.id.progressBar);
        db = new MioDbHelper(getApplicationContext());

        DB = db.getWritableDatabase();
        c = DB.rawQuery("SELECT path FROM foto", null);


        File folder = new File(Environment.getExternalStorageDirectory() + "/FotoLocation");
        if (!folder.exists()) folder.mkdir();

        cityFile = new File(folder, ".City");

        if (!cityFile.exists())
            try {
                cityFile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }


        try {
            br = new BufferedReader(new FileReader(cityFile));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }


        try {
            String data = "";
            while ((data = br.readLine()) != null) {
                localitaVisitate.add(data);
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        new spalshCheckDB().execute();
    }



    private class spalshCheckDB extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }

        @Override
        protected Void doInBackground(Void... params) {

            //Check DataBase
            String whereClause = "path = ?";

            while (c.moveToNext()) {

                File file = new File(c.getString(0));
                if (!file.exists()) {
                    String whereArgs[] = {c.getString(0)};
                    DB.delete("foto", whereClause, whereArgs);
                }
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            DB.close();
            //avviare activity CameraPreview

            Intent i = new Intent(SplashScreen.this, CameraActivityMain.class);
            i.putExtra("pathFileCity", cityFile.getAbsolutePath());
            i.putExtra("arrayLocalitaVisitate", localitaVisitate);
            startActivity(i);

            // close this activity
            finish();
        }
    }

}

questo è la definizione dell'activity nel mio manifest:

Codice (XML): [Seleziona]
<activity
           android:name=".SplashScreen"
           android:configChanges="orientation|keyboardHidden|screenSize"
           android:label="@string/app_name"
           android:theme="@style/FullscreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

Il problema è che a volte parte, e prosegue nell'activity successiva, a volte passa direttamente nell'activity successiva alla spalshscreen e a volte parte la spalsh screen però non prosegue. Ho provato a lanciare la mia applicazione in modalità debug mettendo un brackpoint, eseguendo l'app, ha saltato il brackpoint, passando all'activity successiva, come se la splashscreen non esistesse. COme posso risolvere questo problema? Grazie mille anticipatamente, spero di essere stato quanto più chiaro possibile

Offline alx.romano89

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace 3
  • Sistema operativo:
    OS X 10.10
Re:La spalsh screen parte a random
« Risposta #1 il: 30 Agosto 2015, 09:52:46 CEST »
0
Hai controllato nel logcat? Ci sono errori o eccezioni?