【发布时间】:2014-07-17 14:26:30
【问题描述】:
我正在开发一个以 30 秒为间隔不断从服务器获取数据的项目。所以我将 Handler 与 Timer 一起使用并调用了 Asynctask。
但是我的异步任务没有被调用。这是我的代码,
final Handler handler;
handler = new Handler();
timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask()
{
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try
{
System.out.println("I am xxx");
LiveTrack myActivity = new LiveTrack();
AsyncTask<String, String, String> task = myActivity.new VehiclePath();
task.execute();
}
catch (Exception e)
{
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 30000);
谁能指导我为什么要面对这个问题?
【问题讨论】:
-
无法访问 LiveTrack 类型的封闭实例。必须使用 LiveTrack 类型的封闭实例来限定分配(例如 x.new A(),其中 x 是 LiveTrack 的实例)。为此,我得到了我的类的实例
-
什么是 LiveTrack?是
Activity,还是只是名字不好? -
如果是正确的
Activity,你知道你不能只实例化它,对吧? -
是的,你是对的......但是我在尝试调用 asyntask 时遇到了这个错误
-
什么错误?你没有发布错误,你只是说你的
AsyncTask没有被调用。我的猜测是它没有被调用,因为应用程序无法通过Activity的实例化。将您的AsyncTask设为静态,或者更好的是,将其完全从Activity类中移除。
标签: android android-asynctask handler timertask