TextView实时更新AsyncTask

时间:2015-07-06 13:55:53

标签: android android-asynctask

我正在创建一个Android应用程序,它从网页下载一些文本并将其放在String中,然后在TextView中打印该字符串。但网页内容每秒都会发生变化,因此我希望TextView能够实时更新,每秒显示新的String。要从网页下载文字并设置我使用TextView的{​​{1}}文字,我在主AsyncTask中使用execute()方法调用onCreate()。我不知道如何更新它,没有让应用程序崩溃。 抱歉英语不好,这是我的MainActivity:

Activity

那是我的aSyncTask:

   package com.example.pack;

    import java.net.MalformedURLException;
    import java.net.URL;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;

    public class MainActivity extends Activity
    {
    TextView textView;
    URL url;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        url = null;

        try
        {
            url = new URL("myURL");
        }

        catch (MalformedURLException e) {}

        new VariabileLikeTask(textView).execute(url);
    }
    }

很抱歉,如果格式代码错误,这是我的第一个帖子。

2 个答案:

答案 0 :(得分:0)

经常运行AsyncTask不是一个坏主意吗?这将使应用程序在网络操作中更重。

如果您的意思是实时,推送通知或套接字连接将是最佳匹配。如果您因为尝试从网页获取数据而无法使用推送通知,请考虑使用服务类。然后只需创建一个计时器任务,并在一小段时间后运行AsyncTask。

这是一段时间间隔后运行任务的简单演示,

    private int m_interval = 5000; // 5 seconds by default, can be changed later
    private Handle m_handler;

    @Override
    protected void onCreate(Bundle bundle)
    {
      ...
      m_handler = new Handler();
    }

    Runnable m_statusChecker = new Runnable()
    {
         @Override 
         public void run() {
              //this function can change value of m_interval.
              new VariabileLikeTask(textView).execute(url); 
              m_handler.postDelayed(m_statusChecker, m_interval);
         }
    }

    void startRepeatingTask()
    {
        m_statusChecker.run(); 
    }

    void stopRepeatingTask()
    {
        m_handler.removeCallback(m_statusChecker);
    }

答案 1 :(得分:0)

在这个post中,用户尝试显示来自AsyncTask的对话框,但代码在运行时更改txtBox是相同的,观看它!

告诉我,如果我帮助你并做好编程!