2017-07-15 117 views
0

我有一个MainActivity没有视图附加到它。这是启动活动,用于检查一周中的哪一天,并在该特定日期开始一项新活动。我有一个星期的每一天的活动。 在检查一天并开始当天的活动之后,我调用finish()以便MainActivity被销毁(这样当我单击后退按钮时,空白屏幕不会显示,我可以从应用程序中退出)。Android - 从子活动onResume()开始一个完成的父活动()

现在,我面对的问题是 -

如果我点击主页按钮或应用程序切换到后台,如果一天的变化,如果应用程序来然后再前景越来越显示前一日的观点。它实际上应该更新以显示当天的活动。

由于应用程序回到前台后调用onResume(),我尝试在每天活动的onResume()中添加以下代码以再次启动MainActivity并检查当天,然后启动该特定活动。但只有一个空白屏幕正在显示。

请找到下面的代码:

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(); 
    } 

SaturdayTabActivity的onResume()方法

@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(); 
     } 
    } 

请帮助我了解,如果这是正确的做法,或者如果我缺少什么。

回答

0

添加launchMode = “singleTask” 在AndroidManifest文件在MainActivity ..

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

感谢您的答复。当我手动更改手机上的日期时,它工作正常。日期自动更改时将再次进行测试。再次感谢 :) – Sri