Android nanohttpd无法正常启动

时间:2013-10-05 10:11:56

标签: android nanohttpd

我的app中需要httpd服务器,所以我选择了NanoHttpd。

我已经将自己的服务器子类化了:

public class StreamingServer extends NanoHTTPD {
    private Context mContext;
    public StreamingServer(Context context) {
        super(8080);
        mContext = context;
        Log.i("MyServer", "Streaming server created");
    } 

我正在尝试在主要活动中启动我的服务器:

       // onCreate:
       server = new StreamingServer(getApplicationContext());

这是我的onResume方法:

        // onResume:
        super.onResume();
        try {
            server.start();
        } catch (IOException e) {
            Log.i(TAG, "exception!");
            e.printStackTrace();
        }
        Log.i(TAG, "started!");

和onPause:

        super.onPause();
        if (server != null) {
             server.stop();
             Log.i(TAG, "stopped!");
        }

我也做了正确的设置:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

所以我相信我已经做好了一切。但启动我的应用程序什么都没有(页面不可用)。一些如何2或3次启动导致服务器启动(当时我没有任何不同)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

NanoHttpd希望您覆盖“serve()”方法。从重写方法返回的响应对象将返回到命中您服务器的Web浏览器。 github站点上的“README”文档有一个功能齐全的示例(https://github.com/NanoHttpd/nanohttpd),它将调试信息返回给浏览器。

如果您想提供更有趣的内容,请查看NanoHttpd项目中的samples /文件夹,或者查看功能齐全的Web服务器的webserver /文件夹。