在Activity-Resume之后,Nanohttpd-Webserver无法停止

时间:2015-07-02 15:41:00

标签: android android-activity nanohttpd

我有一个包含webserver-class(简化)的活动:

public class MyActivity extends AppCompatActivity {

    SimpleWebServer webServer = new SimpleWebServer(8088);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
    }

    @Override protected void onResume() {
        super.onResume();
        // Starting webserver
        try {
            webServer.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void changeActivityButtonClicked(View view){
        //change activity
    }

    public void disconnectButtonClicked(View view){
        // Stopping webserver
        webServer.stop();
    }

    //Webserver-Class
    private class SimpleWebServer extends NanoHTTPD {
        public static final String TEXT_404 = "404 File Not Found";

        public SimpleWebServer(int port) {
            super(port);
        }

        @Override
        public Response serve(IHTTPSession session) {
            return new Response("You didn't use the API");
        }
    }
}

当我不离开活动时,此代码按预期工作。但是当我退出此活动(通过changeActivityButtonClicked() - 方法或其他)并重新输入它时,我不能再使用webServer.stop()命令了。服务器永远运行。

我想在更改活动时我忽略了实际webServer - 对象的焦点,但我不知道如何重新访问它。

你有任何提示吗?

0 个答案:

没有答案