如何使用Android中的重载方法创建类?

问题描述:

我是Android新手,我该怎么做? 我创建了一个类FixedDelayTimer,我使用TimerTask如何使用Android中的重载方法创建类?

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 
     } 
    }; 
    ... 
} 

}

我想从TimerTask方法run()是覆盖这样的:

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

和什么问题? –

+0

当我尝试在onCreate()中重写run()方法时出现错误:“方法不会覆盖超类中的方法” – Elena

当然,由于运行是匿名内部类的一部分。在此方法中:

public void start(long delay, long period) 
{ 
    ... 
    updateTask = new TimerTask() { 
     // !! method run() should be override 
     public void run() { 
      // TODO 
     } 
    }; 
    ... 
} 

您不能覆盖run,因为它不属于您的类的一部分。它是您在那里创建的内部课程的一部分。如果您想覆盖它,您实际上需要在您的课程中声明run。通过在课堂上声明,我不是指嵌套式课堂。我的意思是在你的班级里面

+0

是的......抱歉,愚蠢的错误。我编辑我的问题。非常感谢。 – Elena