我有一个没有附加视图的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();
}
}
如果这是正确的方法,或者我遗漏了什么,请帮助我理解。
答案 0 :(得分:0)
添加launchMode =" singleTask"对于AndroidManifest文件中的MainActivity ..
<activity
android:name=".MainActivity"
android:launchMode="singleTask"/>