首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在不重新打开的情况下刷新活动?

是否在不重新打开的情况下刷新活动?
EN

Stack Overflow用户
提问于 2013-07-05 20:20:06
回答 3查看 28.4K关注 0票数 25

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

代码语言:javascript
复制
context.getSharedPreferences("bifrostPrefs", 0).edit().clear().commit();

现在的问题是,每当我使用按钮时,我就需要退出活动并重新打开它才能看到结果。我试着用下面的代码简单地让按钮重新打开活动来解决这个问题:

代码语言:javascript
复制
Intent reOpen = new Intent (Bifrost.this, Bifrost.class);
startActivity(reOpen);

我的想法看起来很聪明,直到我注意到如果我重新打开activity,我需要按两次back按钮才能返回到main activity。所以我做了一些研究,找到了下面的代码:

代码语言:javascript
复制
finish();
startActivity(getIntent());

现在可以正常工作了,活动被刷新,然后我只需要单击back按钮一次。但是,有没有其他方法可以刷新活动而不“闪烁”?正如你所知道的,每次你打开一个新的活动,它都会闪烁,所以应用程序会有一秒钟的延迟。有没有一种方法可以绕过这个来刷新活动?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-05 20:25:27

当然,最好是更新活动的内容,但是如果太复杂了,可以用下面的方法覆盖默认动画:

代码语言:javascript
复制
finish();
overridePendingTransition( 0, 0);
startActivity(getIntent());
overridePendingTransition( 0, 0);
票数 42
EN

Stack Overflow用户

发布于 2013-07-05 20:27:59

可以将标志Intent.FLAG_ACTIVITY_NO_ANIMATION (link)添加到reOpen意图以消除所有动画。但正如另一个答案所述,最好刷新Activity中的数据。

票数 1
EN

Stack Overflow用户

发布于 2013-07-05 20:25:06

您是否有一些视图可以根据您共享的首选项中的值更改其值/大小?如果是,则创建一个初始化视图的方法,并在onCreate()方法和onClick()方法中调用该方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17488766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档