如何刷新活动
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);
【讨论】:
不,先生。它没有用。我需要从头开始刷新活动,就像应用程序在方向改变时所做的那样..以上是关于如何刷新活动的主要内容,如果未能解决你的问题,请参考以下文章