Salve,
Non sono molto esperto in android, anzi è da poco che ci sviluppo.
Come da titolo vorrei salvare un file in background e continuare ad utilizzare l'interfaccia senza avere blocchi.
Ho una classe che estende MyAsyncTask che effettua il salvataggio, quando vado ad utilizzare l'applicazione, nel momento in cui parte il salvataggio l'app risulta lenta o addirittura inutilizzabile.
questo è il codice dove parte il salvataggio:
1
2
3if(!isExistFile) {
4
5
6file = new ManageDrawFile();
7
8
9file.setNome(realWfsName + "-" + requestName);
10
11
12file.execute(currentLayer);
13
14
15
16currentWfsName = "";
17
18}
19
20
21
questo è il metodo per salvare che è presente nella classe che estende MyAsyncTask:
431
2
3public boolean save(){
4writer = new GMLWriter("EPSG:3003");
5Long time = System.currentTimeMillis();
6
7String serialized = "";
8serialized = writer.write(getCurrentLayer());
9
10
11FileOutputStream outputStream = null;
12
13File file = new File(Environment.getExternalStorageDirectory(), "Gis/Lavori/"+getNome()+".gml");
14file.getParentFile().mkdirs();
15
16try {
17file.createNewFile();
18outputStream = new FileOutputStream(file);
19outputStream.write(serialized.getBytes());
20
21
22System.out.println("fine salva: " + (System.currentTimeMillis() - time));
23} catch (IOException e) {
24e.printStackTrace();
25return false;
26} catch (Exception e) {
27e.printStackTrace();
28return false;
29}
30
31finally {
32
33try {
34if(outputStream != null)
35outputStream.close();
36} catch (IOException e) {
37e.printStackTrace();
38}
39}
40return true;
41}
42
43