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在线程生命周期以及如何执行后台工作方面非常独特。一般来说,任何后台工作都应该不能在线程中完成。至少应该在异步任务中完成,更好的是在能够提供适当的工作单元生命周期跟踪的服务中完成
要直接回答您的问题,请查看和此的文档