在Android中重新加载活动

Android中重新加载Activity是否是一个好习惯?

什么是最好的办法呢? this.finish然后this.startActivity与活动Intent

你可以简单的使用

 finish(); startActivity(getIntent()); 

从内部刷新Activity

这是我做了什么以改变偏好改变返回后的活动。

 @Override protected void onResume() { super.onResume(); this.onCreate(null); } 

这本质上导致活动重绘自己。

更新:更好的方法是调用recreate()方法。 这将导致活动被重新创build。

我需要在其中一个应用程序中更新消息列表,所以在closures对话框之前,我刚刚执行了主要UI活动的刷新。我确信还有更好的方法来完成此操作。

 // Refresh main activity upon close of dialog box Intent refresh = new Intent(this, clsMainUIActivity.class); startActivity(refresh); this.finish(); // 

Android包含一个stream程pipe理系统,用于处理活动的创build和销毁,这大大抵消了手动重新启动活动所带来的好处。 您可以在Application Fundamentals上查看更多关于它的信息

最好的做法是确保你的onPause和onStop方法释放你不需要的任何资源,并使用onLowMemory来将你的活动减less到最小。

对于那些不希望看到眨眼后重新()方法简单地使用

  finish(); overridePendingTransition(0, 0); startActivity(getIntent()); overridePendingTransition(0, 0); 

开始一个意图你的同样的activity并closuresactivity

 Intent refresh = new Intent(this, Main.class); startActivity(refresh);//Start the same Activity finish(); //finish Activity. 

我有同样的问题

 import android.support.v4.content.IntentCompat; intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK); 

这个代码适合我。 Android的API 17

在某些情况下,这是最好的做法,如果你select这样做的话,这不是一个好主意,它是上下文驱动的,使用以下方法是从一个活动传递给她的儿子的最好方式:

  Intent i = new Intent(myCurrentActivityName.this,activityIWishToRun.class); startActivityForResult(i, GlobalDataStore.STATIC_INTEGER_VALUE); 

事情是每当你完成()从activityIWishToRun你回到你的生活活动

我不认为这是一个好主意,最好是实施一个更清洁的方法。 例如,如果您的活动持有表单,清理方法可以清除表单中的每个小部件,并删除所有临时数据。 我想这就是你想要的:将活动恢复到初始状态。

经过一段时间的实验后,我发现重新开始一个活动没有意外的后果。 另外,我相信这和Android在默认情况下会改变方向非常相似,所以我没有理由不这样做。

我有另一种方法,如:将我的activity的launchMode设置为singleTop ,而不调用finish() ,只需startActivity(getIntent())就可以完成这项工作。 只需要关心onCreate()onNewIntent的新数据。 用Sush的方式,应用程序可能会像AMAN SINGH所说的那样闪烁。 但是,我认为即使他修正了“眨眼睛”的问题,但是AMAN SINGH的方法仍然会创造一个新的活动,这是不必要的。

这个问题太晚了,但如果有人在寻找一个解决scheme,这里是。