如何使用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();
}
};
...
}
答
当然,由于运行是匿名内部类的一部分。在此方法中:
public void start(long delay, long period)
{
...
updateTask = new TimerTask() {
// !! method run() should be override
public void run() {
// TODO
}
};
...
}
您不能覆盖run
,因为它不属于您的类的一部分。它是您在那里创建的内部课程的一部分。如果您想覆盖它,您实际上需要在您的课程中声明run
。通过在课堂上声明,我不是指嵌套式课堂。我的意思是在你的班级里面
+0
是的......抱歉,愚蠢的错误。我编辑我的问题。非常感谢。 – Elena
你面对哪个错误? –
和什么问题? –
当我尝试在onCreate()中重写run()方法时出现错误:“方法不会覆盖超类中的方法” – Elena