IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème d'actualisation pour mon application?


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Par défaut Problème d'actualisation pour mon application?
    Bonjour,

    Pour ma future application Android, j'ai besoin d'afficher une liste de phrases avec une phrase de plus chaque jour. A la première ouverture sur mon htc wildfire S, tout va bien, une seule phrase est affichée. Seulement, si je reprends l'application le lendemain ou que je change la date du téléphone, une seule phrase est encore affichée. Je réouvre l'application et là, les deux phrases y sont. Quelqu'un pourrait-il m'expliquer pourquoi je n'ai pas directement deux phrases? C'est en fait comme un retard d'une ouverture.

    Merci d'avance

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    package com.android.oneeveryday;
     
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Calendar;
     
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.widget.TextView;
     
    public class OneeverydayActivity extends Activity {
        /** Called when the activity is first created. */
        @Override 
     
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //variables
            String FILENAME = "counter";//nom fichier
            String FILENAMEB = "log";//nom fichier
            String string = "0";//contenu fichier
            int counter = 0;
            int logdate = 0;
            String chaine = "";
            String chaineb = "";
            Calendar rightNow = Calendar.getInstance();
            String stringb = "" + rightNow.get(Calendar.DAY_OF_YEAR);//contenu fichier
            String chainec = "" + rightNow.get(Calendar.DAY_OF_YEAR);
            int date = Integer.valueOf(chainec).intValue();
            logdate = date;
            String output = "";//chaine affichée à la fin
    		FileInputStream fis;
    		FileInputStream fisb;
    		byte[] buffer = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    		byte[] bufferb = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    		int byteOffset = 0;//on commence à écrire dans le buffer à l'indice 0
    		int byteCount = 10;//nombre maximal de bytes à écrire dans le buffer
    		//----------------------
    		try {//on essaye de lire le fichier
    					fis = openFileInput(FILENAME);
    					fis.read (buffer, byteOffset, byteCount);
    			        fis.close();
     
    			        fisb = openFileInput(FILENAMEB);
    					fisb.read (bufferb, byteOffset, byteCount);
    			        fisb.close();
    		} catch (FileNotFoundException e) {//si le fichier n'est pas trouvé, il faut le créer puis réessayer
    					FileOutputStream fos;
    					FileOutputStream fosb;
    					try {//on essaye de créer le fichier
    						fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
    						fos.write(string.getBytes());
    				        fos.close();
     
    				        fosb = openFileOutput(FILENAMEB, Context.MODE_PRIVATE);
    						fosb.write(stringb.getBytes());
    				        fosb.close();
    					} catch (FileNotFoundException e1) {} catch (IOException e1) {}//exceptions
     
    					try {//puis on réessaye de le lire
    						fis = openFileInput(FILENAME);
    						fis.read (buffer, byteOffset, byteCount);
    						fis.close();
     
    						fisb = openFileInput(FILENAMEB);
    						fisb.read (bufferb, byteOffset, byteCount);
    						fisb.close();
    					} catch (FileNotFoundException e1) {} catch (IOException e1) {}
    		} catch (IOException e) {}
    		for(int i = 0; i < 10; i++){chaine += (char) buffer[i];}//on convertit les bytes en char et on les écrit dans la variable chaine
    		for(int j = 0; j < 10; j++){chaineb += (char) bufferb[j];}//on convertit les bytes en char et on les écrit dans la variable chaine
     
    		chaine = chaine.trim();//on enlève les espaces avant la conversion
    		chaineb = chaineb.trim();//on enlève les espaces avant la conversion
     
     
     
     
     
    		counter = Integer.valueOf(chaine).intValue() + 1;//on convertit en int puis on ajoute 1
    		int x = counter;
    		chaine = "" + x;
    		logdate = Integer.valueOf(chaineb).intValue();//on convertit en int
     
     
    		if(date != logdate){
    		//on écrit le nombre pour la prochaine fois
    			FileOutputStream fos2;
    			try {//on essaye de créer le fichier
    				fos2 = openFileOutput(FILENAME, Context.MODE_PRIVATE);
    				fos2.write(chaine.getBytes());
    		        fos2.close();
    			} catch (FileNotFoundException e1) {} catch (IOException e1) {}//exceptions
    		//------------------------------------------
    		//
    			FileOutputStream fos3;
    			try {//on essaye de créer le fichier
    				fos3 = openFileOutput(FILENAMEB, Context.MODE_PRIVATE);
    				fos3.write(chainec.getBytes());
    		        fos3.close();
    			} catch (FileNotFoundException e1) {} catch (IOException e1) {}//exceptions
    		//------------------------------------------
    		}
     
    		String[] phrase = {		
    				"phrase1",
    				"phrase2",
    				"phrase3",
    				"phrase4",
    				"phrase5",
    				"phrase5",
    				"phrase7",
    				"phrase8",
    				"phrase9",
    				"phrase10"};
     
    		for(int k = 0;k < counter; k++){
    		output += phrase[k] + " ";}
     
     
     
    		TextView tv = new TextView(this);
    		tv.setText(output + " counter = " + counter + ", log = " + logdate);
     
            setContentView(tv);
        }
    }

  2. #2
    Membre confirmé Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Par défaut
    onCreate() est, comme son nom l'indique, appelée uniquement à la création de l'activité.

    Je pense qu'il faut redéfinir la méthode onResume() afin que ton application soit actualisée à chaque fois que l'utilisateur va regarder l'application sans avoir besoin de l'arrêter et de la relancer.

    Pour mieux comprendre le cycle de vie d'une application, voir ici :
    http://developer.android.com/referen.../Activity.html

Discussions similaires

  1. problème pour mon application java
    Par smile2206 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/01/2007, 17h30
  2. Images, gifs et icones gratuites pour mon application
    Par Doctor Z dans le forum Windows
    Réponses: 2
    Dernier message: 03/10/2005, 00h10
  3. Création d'un CD d'installation pour mon application
    Par chrisis dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 02/06/2005, 16h46
  4. oracle ou interabse pour mon application ?
    Par nytmare dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 22/04/2004, 11h17
  5. Choix de technologies pour mon application
    Par Franco dans le forum Java EE
    Réponses: 5
    Dernier message: 21/10/2003, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo