自动刷新活动

时间:2011-05-26 06:55:07

标签: android

在我的应用程序中,我有一个显示来自互联网内容的活动.....我只是想知道如何自动刷新活动......

如果可能,请建议并提供一些代码块。

4 个答案:

答案 0 :(得分:10)

您可以使用handler来执行循环过程,如下所示:

Handler handler = new Handler();
Runnable refresh;

在第一个通话时间:

refresh = new Runnable() {
    public void run() {
        // Do something
        handler.postDelayed(refresh, 5000);
    }
};
handler.post(refresh);

由于您无法在匿名类中调用非final变量,因此您必须在包含类中声明refresh

答案 1 :(得分:9)

试试这个,效果很好:))

    public void onCreate(Bundle savedInstanceState)  
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    this.mHandler = new Handler();

    this.mHandler.postDelayed(m_Runnable,5000);


}//onCreate

private final Runnable m_Runnable = new Runnable()
{
    public void run()

    {
        Toast.makeText(refresh.this,"in runnable",Toast.LENGTH_SHORT).show();

        refresh.this.mHandler.postDelayed(m_Runnable, 5000);            
    }

};//runnable

答案 2 :(得分:4)

此代码如果您想首先创建视图并在指定时间跨度后刷新页面,请使用以下代码。(此处提及刷新率为20秒) 它每20秒工作一次精细和自动刷新。

public class MainActivity extends Activity {
Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        this.mHandler = new Handler();
        m_Runnable.run();

}
    private final Runnable m_Runnable = new Runnable()
    {
        public void run()

        {
            Toast.makeText(MainActivity.this,"in runnable",Toast.LENGTH_SHORT).show();

            MainActivity.this.mHandler.postDelayed(m_Runnable,20000);            
        }

    };
}

答案 3 :(得分:1)

考虑购买“The Busy Coder's Guide to Advanced Android Development”,特别阅读第13章“高级服务模式”。本章的源代码is available on Github,这个方便的介绍:

  

CWAC Wakeful:在工作中保持清醒

     

推荐的Android模式相当于cron作业和Windows   计划任务是使用AlarmManager。与...结合使用时效果很好   IntentService,因为服务将在后台线程上完成工作并关闭   当没有更多工作要做的时候。

它将AlarmManagerIntentSerivce联系起来。这比使用Handler要复杂得多,但在Service中打包数据服务是一种很好的做法,如果你想在不同的应用程序之间共享数据,实际上是强制性的。

如果您不知道如何使用服务,请考虑购买The Busy Coder's Guide to Android Development。它“附带”我之前提到的那本书。我昨天买了所有这些,它们是名副其实的金矿。