自动刷新活动

Par*_*ngh 11 android

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

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

Luk*_* Vo 13

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

Handler handler = new Handler();
Runnable refresh;
Run Code Online (Sandbox Code Playgroud)

在第一个通话时间:

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

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

  • 我喜欢Handlers.这就是我想说的. (4认同)

Sye*_*ed 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
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您想首先创建视图,然后在指定的时间跨度刷新页面,则使用以下代码。(这里提到刷新率为 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);            
        }

    };
}
Run Code Online (Sandbox Code Playgroud)