我已经构建了一个具有此活动LifeCycle的应用程序: StartActivity - > TemplateChooseOptions - >选择模板 - >模板
我有一个在其中有布尔值的类。发生服务器错误时,布尔值将发生变化。
当布尔值发生变化时,我希望所有活动都将完成对“开始活动”的操作。 我试过这个:
new Thread(new Runnable() {
public void run() {
ClientLogic CL = Globals.getInstance().getCL();
while(!CL.isErrStatus());
if(CL.isErrStatus()){
finish();
}
}
}).start();
但它需要太多的CPU能力。
我该怎么办?
答案 0 :(得分:1)
不要使用线程,创建自己的侦听器并在活动中实现它
public class MainActivity extends Activity implements ServerErrorListener {
@Override
onServerError() {
finish();
}
@Override
protected void onResume() {
if(ClientLogic.getInstance().getCL().isErrStatus) {
// Todo finish
}
ClientLogic.getInstance().addErrorListener(this);
}
@Override
protected void onPause() {
ClientLogic.getInstance().removeListener(this);
super.onPause();
}
}
或者像@mubeen所说的那样使用BroadcastReceiver。