刷新活动而不重新打开它?

时间:2013-07-05 12:20:06

标签: java android eclipse android-activity

我在我的应用中实现了一个按钮,使用此代码清除所有共享偏好:

context.getSharedPreferences("bifrostPrefs", 0).edit().clear().commit();

现在问题是每当我使用按钮时,我都需要退出活动并重新打开它以查看结果。我试着用这个代码重新打开活动按钮来解决这个问题:

Intent reOpen = new Intent (Bifrost.this, Bifrost.class);
startActivity(reOpen);

我的想法似乎很聪明,直到我注意到如果我重新打开活动,我需要按两次后退按钮才能返回主要活动。所以我做了一些研究,发现了这段代码:

finish();
startActivity(getIntent());

现在工作正常,活动会刷新,然后我只需要单击后退按钮一次。但是有没有另一种刷新活动的方法而不会“闪烁”进出?如您所知,每次打开新活动时,它都会闪烁,因此应用程序会滞后一秒钟。有没有办法绕过这个来刷新活动?

3 个答案:

答案 0 :(得分:28)

嗯,最好更新活动的内容,但如果它太复杂,你可以使用这种方法覆盖默认动画:

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

答案 1 :(得分:1)

您可以将标记Intent.FLAG_ACTIVITY_NO_ANIMATIONlink)添加到reOpen意图中,以消除所有动画。但正如另一个答案所述,更好地刷新你内部的数据Activity

答案 2 :(得分:0)

您是否有一些视图可能会根据共享偏好设置中的值更改其值/大小?如果是的话,创建一个方法来初始化视图并在onCreate()方法和onClick()方法中调用该方法。

相关问题