Android - 布尔值更改时停止活动

时间:2016-04-28 10:05:59

标签: android

我已经构建了一个具有此活动LifeCycle的应用程序: StartActivity - > TemplateChooseOptions - >选择模板 - >模板

我有一个在其中有布尔值的类。发生服务器错误时,布尔值将发生变化。

当布尔值发生变化时,我希望所有活动都将完成对“开始活动”的操作。 我试过这个:

new Thread(new Runnable() {
    public void run() {
        ClientLogic CL = Globals.getInstance().getCL();
        while(!CL.isErrStatus());
        if(CL.isErrStatus()){
            finish();
        }
    }
}).start();

但它需要太多的CPU能力。

我该怎么办?

1 个答案:

答案 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。