如何刷新活动

Posted

技术标签:

【中文标题】如何刷新活动【英文标题】:How to refresh activity 【发布时间】:2011-07-08 20:02:20 【问题描述】:

我有一个 android 应用程序,它可以提取存储在 sd 卡中的视频列表并播放它们。

当我点击播放按钮时,一个单独的活动以 VideoView 开始,我需要刷新调用 VideoView 活动的主要活动来播放视频。我需要的是,当视频完成或用户单击后退按钮时,我希望刷新活动。任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

覆盖 onResume() 并在那里更新您的活动。如何更新它取决于它是什么类型的活动以及需要更新的内容。例如,如果您在 ListActivity 中使用 ArrayAdapter,则可以在更新数据后调用 getListAdapter().notifyDataSetChanged()

【讨论】:

其实先生,我只是想刷新整个活动,就像我们改变方向时一样。有什么办法吗?我不想更新,而是希望整个 Activity 刷新或重新启动.. 我不确定您为什么要这样做,但您可以使用此代码:startActivity(getIntent()); finish();。这很浪费,您最好重复onCreate 的逻辑,包括对setContentView 的新调用。 我建议将您希望在每次恢复活动时执行的代码移动到onResume()。如果您只希望它在从视频活动返回时运行,请将代码重构为一个方法并从onCreate()onActivityResult() 调用它。调用视频活动的意图时,请通过startActivityForResult() 执行此操作。【参考方案2】:

我在另一个链接上发布了这个,试试这个:

finish();startActivity(getIntent());

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

注意:这也适用于 Activity 对象或使用 getActivity() 的 Fragments

【讨论】:

【参考方案3】:

实现 onResume() 见docs

【讨论】:

【参考方案4】:

这对你有用吗?

public void onResume(Bundle s) 
       this.onCreate(s);

【讨论】:

不,先生。它没有用。我需要从头开始刷新活动,就像应用程序在方向改变时所做的那样..

以上是关于如何刷新活动的主要内容,如果未能解决你的问题,请参考以下文章

如何刷新其活动的 MenuitemSelected 上的片段?

如何在通知单击时重新启动/刷新活动内容

当我们从另一个活动返回时如何刷新活动的数据?

如何在返回活动中刷新返回的 amx 页面

如何在删除记录时刷新适配器的活动?

如何从适配器刷新主要活动中的视图?