Bonjour,

J'aimerais, au premier lancement de mon application, exécuter un code (créer un id) et l'enregistrer, et ce une seule fois.

Voila le code de l'activité LAUNCHER / MAIN:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);       
 
        // --------------------------------------------
        // Vérification de l'existence de l'identifiant
        // --------------------------------------------
        File file = getApplicationContext().getFileStreamPath("myapp_install");
 
        // -------------------------
        // Création d'un identifiant
        // -------------------------
        if (!file.exists()) {
        	MyNewId = 'XXX';
 
		// --------------------
		// Création du fichier
		// --------------------
		try {
			fos = openFileOutput("myapp_install", Context.MODE_PRIVATE);
			fos.write(String.valueOf(MyNewId).getBytes());
			fos.close();
		} catch (IOException e) {
			Log.e("APP", "Création fichier impossible " + e.toString());
		}		
	} else {
 
        	String line = null;
        	FileInputStream fos = null;
        	StringBuilder idRetour = new StringBuilder();
 
		try {
			fos = openFileInput("myapp_install");
			InputStreamReader inputreader = new InputStreamReader(fos);
			BufferedReader buffreader = new BufferedReader(inputreader);
			if ((line = buffreader.readLine()) != null) {
			    	idRetour.append(line);
			    	MyNewId = Integer.parseInt(String.valueOf(idRetour));
			}
			fos.close();
		} catch (Exception e) {
			Log.e("APP", "Lecture de l'identifiant impossible " + e.toString());
		}
 
        }
 
    }
Quand je lance l'application une première fois, l'identifiant est bien créé.
Mais imaginons que je quitte l'application (mais sans la fermer puisque qu'elle tourne en arrière plan) alors que je suis sur une autre activité, lorsque je reviens dessus, et donc retombe sur la dernière activité, est-ce que le code du main est relancé? Le code du main est-il relancé quand je reviens sur cette activité seulement?

Logiquement oui car c'est dans le OnCreate(), mais j'obtiens quelques soucis de récupération d'id donc je voulais savoir si mon code était "propre".

Merci