80,337
社区成员
发帖
与我相关
我的任务
分享
public class MyClass {
private MyThread mThread = null;
private boolean isRunning = false;
private OnChangeListener listener = null;
private boolean flag = false;
private class MyThread extends Thread {
@Override
public void run() {
super.run();
while (isRunning && !isInterrupted()) {
if (flag) {
listener.onChanged();
flag = false;
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {
break;
}
}
}
}
public interface OnChangeListener {
public void onChanged();
}
public void setMyListender(OnChangeListener l) {
listener = l;
}
public void start() {
if (null == mThread) {
mThread = new MyThread();
isRunning = true;
mThread.start();
}
}
public void flag() {
flag = true;
}
}
public class MainActivity extends Activity {
private MyClass mc = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mc = new MyClass();
mc.setMyListender(new MyClass.OnChangeListener() {
@Override
public void onChanged() {
//这里如果涉及到UI相关的操作则报错
}
});
mc.start();
}
public class MainActivity extends Activity {
private MyClass mc = null;
private Handler mHandler = new Handler();//Handler
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mc = new MyClass();
mc.setMyListender(new MyClass.OnChangeListener() {
@Override
public void onChanged() {
mHandler.post(new Runnable(){@Override public void run(){
//这里做UI更新
}});
}
});
mc.start();
}