Autore Topic: verificare se c'è una 'scansione per nuovi file' in esecuzione  (Letto 593 volte)

Offline kekko986

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Google+
    • Mostra profilo
    • Phorganizer
  • Dispositivo Android:
    GalaxyNexus | AOKP/CM9 | franco.Kernel
  • Play Store ID:
    Fra.c Labs
  • Sistema operativo:
    Ubuntu 12.04 LTS
verificare se c'è una 'scansione per nuovi file' in esecuzione
« il: 02 Maggio 2012, 12:31:32 CEST »
0
salve a tutti... c'è un modo per sapere se c'è in background una scansione per nuovi file?

io lancio la scansione in questo modo, aggiornando così la libreria dei file...

Codice (Java): [Seleziona]
                sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                        Uri.parse("file://" + Environment.getExternalStorageDirectory())));

la mia app modifica in batch (rinomina)i file all interno di una cartella... e ho notato che se eseguo l operazione su molti file e rifaccio subito la stessa operazione, si verificano dei problemi.. tipo mi ritrovo file vuoti (0 kb) con il filename senza modifica etcetc..se ne vedono di tutti i colori.. comunque... c'è un modo di sapere se c'è la scansione in esecuzione?
così creerei la condizione.. se c'è una scan. non puoi fare niente... altrimenti continua con le operazioni... così da evitare spiacevoli inconvenienti... non so se sono stato molto chiaro... spero di si!

Offline kekko986

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Google+
    • Mostra profilo
    • Phorganizer
  • Dispositivo Android:
    GalaxyNexus | AOKP/CM9 | franco.Kernel
  • Play Store ID:
    Fra.c Labs
  • Sistema operativo:
    Ubuntu 12.04 LTS
Re:verificare se c'è una 'scansione per nuovi file' in esecuzione
« Risposta #1 il: 25 Maggio 2012, 12:41:10 CEST »
0
salve, ho implementato questa soluzione, che per me va più che bene :) in pratica apro un progressdialog e "obbligo" l'utente ad aspettare.....e la chiudo quando finisce la scansione

Codice (Java): [Seleziona]
        progressDialog = ProgressDialog.show(this, getString(R.string.wait) , getString(R.string.op_media_mounted));
        new Thread()
        {
          public void run()
          {

             try
               {
                        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                                Uri.parse("file://" + Environment.getExternalStorageDirectory())));

                        IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_FINISHED);
                        filter.addDataScheme("file");                          
                        BroadcastReceiver mReceiver = (new BroadcastReceiver() {
                                @Override
                                public void onReceive(Context context, Intent intent) {
                                        if (intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) {
                                                Toast.makeText(main.this, R.string.scan_complete, Toast.LENGTH_SHORT).show();
                                                progressDialog.dismiss();
                                        }
                                }
                        });
                        registerReceiver(mReceiver, filter);  

              }
            catch (Exception e)
            {
                Log.e("tag",e.getMessage());
            }
        }
        }.start();