在Android中重载Activity是一个很好的做法吗?
最好的方法是什么?这一点。完成,然后这个。用Intent启动activity ?
在Android中重载Activity是一个很好的做法吗?
最好的方法是什么?这一点。完成,然后这个。用Intent启动activity ?
当前回答
我有另一种方法,比如:设置我的活动的启动模式为singleTop,不调用finish(),只需startActivity(getIntent())就可以完成工作。你只需要关心onCreate()和onNewIntent中的新数据。有了Sush的方法,应用程序可能会像AMAN SINGH说的那样眨眼。但是AMAN SINGH的方法仍然会创造一个新的活动,这在某种程度上是不必要的,即使他解决了“眨眼”的问题,我认为。
问这个问题已经太迟了,但如果有人正在寻找解决方案,这里就是。
其他回答
登录后,我有同样的问题,所以我使用
@Override
protected void onRestart() {
this.recreate();
super.onRestart();
}
我有另一种方法,比如:设置我的活动的启动模式为singleTop,不调用finish(),只需startActivity(getIntent())就可以完成工作。你只需要关心onCreate()和onNewIntent中的新数据。有了Sush的方法,应用程序可能会像AMAN SINGH说的那样眨眼。但是AMAN SINGH的方法仍然会创造一个新的活动,这在某种程度上是不必要的,即使他解决了“眨眼”的问题,我认为。
问这个问题已经太迟了,但如果有人正在寻找解决方案,这里就是。
在活动中,您可以调用rebuild()来“重新创建”活动(API 11+)
这就是我所做的重新加载活动后,从一个首选项更改返回。
@Override
protected void onResume() {
super.onResume();
this.onCreate(null);
}
这本质上导致活动重绘自身。
更新:更好的方法是调用rebuild()方法。这将导致重新创建活动。
我看到了之前给出的使用Intent重新加载活动的答案。这些都可以工作,但你也可以使用Activity类本身给出的rebuild()方法来做同样的事情。
不写这个
//当对话框关闭时刷新主活动
Intent refresh = new Intent(this, clsMainUIActivity.class);
startActivity(refresh);
this.finish();
这可以通过写这个来实现
recreate();