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

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

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

【问题讨论】:

    标签: android android-activity android-intent refresh android-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);
        }
        

        【讨论】:

        • 不,先生。它没有用。我需要从头开始刷新活动,就像应用程序在方向改变时所做的那样..
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 2013-09-14
        相关资源
        最近更新 更多