在Android中重载Activity是一个很好的做法吗?
最好的方法是什么?这一点。完成,然后这个。用Intent启动activity ?
在Android中重载Activity是一个很好的做法吗?
最好的方法是什么?这一点。完成,然后这个。用Intent启动activity ?
当前回答
对我来说,它是工作的,它没有创建另一个意图和同样的意图新数据加载。
overridePendingTransition(0, 0);
finish();
overridePendingTransition(0, 0);
startActivity(getIntent());
overridePendingTransition(0, 0);
其他回答
在尝试了一段时间后,我发现重新启动一个活动并没有意想不到的后果。此外,我认为这与Android在改变方向时默认做的事情非常相似,所以在类似的情况下我没有理由不这样做。
Android包括一个进程管理系统,它可以处理活动的创建和销毁,这在很大程度上抵消了手动重新启动活动的任何好处。你可以在应用基础上看到更多的信息
好的做法是确保你的onPause和onStop方法释放任何你不需要保留的资源,并使用onLowMemory将你的活动需求减少到绝对最小。
我有另一种方法,比如:设置我的活动的启动模式为singleTop,不调用finish(),只需startActivity(getIntent())就可以完成工作。你只需要关心onCreate()和onNewIntent中的新数据。有了Sush的方法,应用程序可能会像AMAN SINGH说的那样眨眼。但是AMAN SINGH的方法仍然会创造一个新的活动,这在某种程度上是不必要的,即使他解决了“眨眼”的问题,我认为。
问这个问题已经太迟了,但如果有人正在寻找解决方案,这里就是。
这就是我所做的重新加载活动后,从一个首选项更改返回。
@Override
protected void onResume() {
super.onResume();
this.onCreate(null);
}
这本质上导致活动重绘自身。
更新:更好的方法是调用rebuild()方法。这将导致重新创建活动。
在某些情况下,这是最好的做法,但在其他情况下,这不是一个好主意,这是环境驱动的 如果你选择这样做,使用以下是最好的方式从一个活动传递给她的儿子:
Intent i = new Intent(myCurrentActivityName.this,activityIWishToRun.class);
startActivityForResult(i, GlobalDataStore.STATIC_INTEGER_VALUE);
事情是每当你完成()从activityIWishToRun你回到你的一个活动