2017-07-15 187 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