Android:Runnable类型的run方法必须覆盖超类型方法

时间:2014-02-24 12:04:54

标签: android multithreading override

我在安装Android活动时遇到问题:我正在尝试为应用创建启动画面,该屏幕将在3秒内显示。

然而,我在代码的一部分中得到了一个持续的错误,如下所示(错误):

“new Runnable(){}类型的方法run()必须覆盖或实现超类型方法”

以下是该部分:

final Runnable execution = new Runnable(){

@Override
public void run() {

    Intent login = new Intent(ctx,LoginScreen.class);
    startActivity(login);
    finish();           
}

};

其余的代码:

package com.example.events;

import com.example.events.LoginScreen;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;

public class Runnable extends Activity {

    Context ctx;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_runnable);
        ctx=this;
        Threads();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.runnable, menu);
        return true;
    }

    final Handler mHandler= new Handler();

    public void Threads(){

        Thread thread = new Thread() {
            @Override
            public void run() {
                try {
                    Thread.sleep(3000);
                } 

                catch (InterruptedException e) {
                }
                mHandler.post((java.lang.Runnable) execution);
            }
        };

        thread.start();
    }

    final Runnable execution = new Runnable(){

        @Override
        public void run() {

            Intent login = new Intent(ctx,LoginScreen.class);
            startActivity(login);
            finish();           
        }

    };

}

我DID检查我的项目属性,编译器IS设置为1.6但错误不会离开:有什么我做错了吗?

非常感谢你的帮助。

莫罗。

1 个答案:

答案 0 :(得分:3)

您的Activity名为Runnable。因此,您的final Runnable execution = new Runnable()正在尝试创建com.example.events.Runnable的实例,该实例没有run()方法。

有几乎无限数量的可能类名。请为您的Activity子类选择一个不同的子类,一个不与Java或Android中常用的另一个类名冲突的子类。例如,您可以选择Ddskwerioajsdlv作为Activity子类的名称,因为该名称似乎没有被使用。