Android - 从子活动onResume()开始完成的父活动

时间:2017-07-15 14:44:23

标签: android android-activity onresume

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

现在我面临的问题是 -

如果我点击主页按钮或应用程序转到后台,如果日期发生变化,如果应用程序再次显示前景,则会显示前一天的视图。它实际上应该更新以显示当天的活动。

由于在应用程序返回前台后调用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();
        }
    }

如果这是正确的方法,或者我遗漏了什么,请帮助我理解。

1 个答案:

答案 0 :(得分:0)

添加launchMode =" singleTask"对于AndroidManifest文件中的MainActivity ..

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