sly*_*oty 1 android superclass android-intent activity-finish android-activity
请考虑以下情形:
类TemplateActivity扩展Activity。在onResume()其中执行布尔变量的验证,如果为false,则完成方法和活动,并开始一个新活动OtherActivity。
当ChildActivity扩展的类TemplateActivity运行时,它等待super.onResume()完成,然后继续,无论其父级是否需要启动Intent。
问题:当需要从那里开始时,
是否有一种方法可以终止?没有在子类中执行有效性检查。ChildActivityOtherActivityTemplateActivity
超类:
class TemplateActivity extends Activity {
@Override
protected void onResume() {
super.onResume();
if(!initialized)
{
startActivity(new Intent(this, OtherActivity.class));
finish();
return;
}
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
子类:
class ChildActivity extends TemplateActivity {
@Override
protected void onResume() {
super.onResume();
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
更好的解决方案是类设计的方法稍有不同:
DoStuff()(用明智的名称代替)TemplateActivity。//在那里做所有的工作。TemplateActivity OnResumeonResume在ChildActivity。这样,如果条件在TemplateActivity OnResume中触发,则父子DoStuff和子DoStuff都不会完成。本ChildActivity不应该知道什么有关此问题。
| 归档时间: |
|
| 查看次数: |
1367 次 |
| 最近记录: |