我是Android的新手,我该怎么做?
我创建了一个类FixedDelayTimer
,我使用TimerTask
。
public class FixedDelayTimer extends Timer{
public FixedDelayTimer()
{
...
}
public void start(long delay, long period)
{
...
updateTask = new TimerTask() {
// !! method run() should be override
public void run() {
// TODO
}
};
...
}
}
我希望来自run()
的方法TimerTask
可以覆盖:
public class MainActivity extends Activity {
FixedDelayTimer updateTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.example.eleizo.firstapplication.R.layout.activity_main);
updateTask = new FixedDelayTimer(){
@Override
public void run(){
new DownloadImage().execute("http://");
}
};
}
在正确的答案后编辑:
// !! method task() should be override
public void task(){
// TODO
}
//таймер запущен, задача выполняется
public void start(long delay, long period)
{
...
updateTask = new TimerTask() {
@Override
public void run() {
task();
}
};
...
}
答案 0 :(得分:0)
当然,因为run是匿名内部类的一部分。在这种方法中:
public void start(long delay, long period)
{
...
updateTask = new TimerTask() {
// !! method run() should be override
public void run() {
// TODO
}
};
...
}
您无法覆盖run
,因为它不是您班级的一部分。它是你在那里创造的内在阶级的一部分。如果要覆盖它,您实际上需要在班级中声明run
。通过在课堂上宣布,我并不意味着在一个嵌套的课堂上。我的意思是在你的课堂内