android中的内部类

android中的内部类,android,inner-classes,Android,Inner Classes,在以下代码中: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewByI

在以下代码中:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button) findViewById(R.id.btn1);


        // On button click call this listener
        btn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {


                Thread background = new Thread(new Runnable() {
                    public void run() {
                        //Do some work here !
                    }};
                };

在上面的代码中,新的
new OnClickListener()
是类
MainActivity
中的一个匿名内部类,但是新的
线程(new Runnable()
这个类也是一个内部类吗?哪个类是它的外部类?如果它是
new OnClickListener()中的一个内部类呢
这个类可以访问MainActivity成员吗?

我不想听起来很刺耳,但如果你不知道这一点,那么你可能不应该尝试在活动内部启动线程。Android在线程生命周期以及如何执行后台工作方面非常独特。一般来说,任何后台工作都应该不能在线程中完成。至少应该在异步任务中完成,更好的是在能够提供适当的工作单元生命周期跟踪的服务中完成

要直接回答您的问题,请查看和此的文档