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

Guy*_*Guy 21 java eclipse android android-activity

我在我的应用程序中实现了一个按钮,使用以下代码清除所有共享首选项:

context.getSharedPreferences("bifrostPrefs", 0).edit().clear().commit();
Run Code Online (Sandbox Code Playgroud)

现在的问题是,无论何时我使用按钮,我都需要退出活动并重新打开它以查看结果.我尝试通过简单地使用此代码重新打开活动按钮来解决此问题:

Intent reOpen = new Intent (Bifrost.this, Bifrost.class);
startActivity(reOpen);
Run Code Online (Sandbox Code Playgroud)

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

finish();
startActivity(getIntent());
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*his 31

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

finish();
overridePendingTransition( 0, 0);
startActivity(getIntent());
overridePendingTransition( 0, 0);
Run Code Online (Sandbox Code Playgroud)