2017-07-15 21 views
0

私はMainActivityを持っていますが、それにはビューが添付されていません。これは、その曜日をチェックし、その特定の日に新しいアクティビティを開始する起動アクティビティです。私は週の毎日のための活動を持っています。 日をチェックしてその日のアクティビティを開始した後、MainActivityが破棄されるようにfinish()を呼び出します(バックボタンをクリックすると空白の画面が表示されず、アプリから出るようになります)。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

は... AndroidManifestファイル内MainActivityのためにあなたの応答のための

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

感謝をlaunchMode = "singleTask" を追加します。私は手動で電話機の日付を変更したときに機能しました。日付が自動的に変更されたときに再度テストします。もう一度ありがとう :) – Sri

関連する問題