2017-07-15 2 views
0

J'ai une MainActivity qui n'a aucune vue attachée à elle. C'est l'activité de lancement qui vérifie le jour de la semaine et commence une nouvelle activité pour ce jour particulier. J'ai une activité pour chaque jour de la semaine. Après avoir vérifié le jour et démarré l'activité du jour, j'appelle finish() pour que MainActivity soit détruite (de sorte que lorsque je clique sur le bouton Retour, l'écran vide ne s'affiche pas et je peux sortir de l'application).Android - Démarrage d'une activité parent terminée à partir de l'activité enfant onResume()

Maintenant, la question que je suis confronté est -

Si je clique sur le bouton d'accueil ou l'application va à l'arrière-plan et si les changements de jour et si l'application est à nouveau premier plan puis la vue de la veille est de s'affiche . Il devrait effectivement être mis à jour pour afficher l'activité du jour en cours. Depuis onResume() est appelé après que l'application revient au premier plan, j'ai essayé d'ajouter le code suivant dans onResume() de l'activité de chaque jour pour redémarrer MainActivity et vérifier le jour, puis commencer cette activité particulière. Mais seul un écran vide s'affiche.

S'il vous plaît trouver le code ci-dessous:

MainActivity

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

     calendar= Calendar.getInstance(); 
     int day=calendar.get(Calendar.DAY_OF_WEEK); 

     switch(day) 
     { 
      case Calendar.SUNDAY: { 
       Intent intent=new Intent(MainActivity.this, SundayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
      case Calendar.MONDAY: { 
       Intent intent=new Intent(MainActivity.this, MondayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
      case Calendar.TUESDAY: { 
       Intent intent=new Intent(MainActivity.this, TuesdayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
      case Calendar.WEDNESDAY: { 

       Intent intent=new Intent(MainActivity.this, WednesdayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
      case Calendar.THURSDAY: { 

       Intent intent=new Intent(MainActivity.this, ThursdayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
      case Calendar.FRIDAY: { 

       Intent intent=new Intent(MainActivity.this, FridayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
      case Calendar.SATURDAY: { 
       Intent intent=new Intent(MainActivity.this, SaturdayTabActivity.class); 
       startActivity(intent); 
       break; 
      } 
     } 
     finish(); 
    } 

méthode

@Override 
    protected void onResume() { 
     super.onResume(); 
     Calendar calendar= Calendar.getInstance(); 
     int day=calendar.get(Calendar.DAY_OF_WEEK); 
     if (day != 6) 
     { 
      System.out.println("day changed-----"); 
      Intent intent=new Intent(SaturdayTabActivity.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    } 

SaturdayTabActivity onResume() S'il vous plaît me aider à comprendre si c'est la bonne approche ou si je manque quelque chose .

Répondre

0

Ajouter launchMode = "singleTask" pour le MainActivity dans le fichier AndroidManifest ..

<activity 
    android:name=".MainActivity" 
    android:launchMode="singleTask"/> 
+0

Merci pour votre réponse. Cela a fonctionné quand j'ai manuellement changé la date sur mon téléphone. Va le tester à nouveau lorsque la date change automatiquement. Encore merci :) – Sri