2016-09-02 3 views
-2

Я хочу создать http-сервер в android, который служит файлу (html/png ..), также делая событие на основе запроса.android change textview text на основе http-запроса

Пример: если запрос /maketoast android сделать тост или запрос /chanhetext android изменить текст текста.

Пункт: Я уже делаю сервер Nanohttpd. Он служит для файлов, но не делает никаких событий, например, делать тост или изменять текст текста.

Вот Nanohttpd служить методу

public Response serve(IHTTPSession session) { 
     String msg = "<html><body><h1>Hello server</h1>\n"; 
     Map<String, String> parms = session.getParms(); 
     if (parms.get("username") == null) { 
      msg += "<form action='?' method='get'>\n <p>Your name: <input type='text' name='username'></p>\n" + "</form>\n"; 
     } else { 
      msg += "<p>Hello, " + parms.get("username") + "!</p><img src=max.png/>"; 
     } 
     //Toast.makeText(mContext, "Helloooooo...!!!", Toast.LENGTH_SHORT).show(); 
     return newFixedLengthResponse(msg + "</body></html>\n"); 
    } 

Когда я пытаюсь сделать тост сервер собирается заморозить и не дает никакого ответа. Может ли кто-нибудь рассказать мне, как я это делаю.

+0

Кажется, вы, вероятно, не поместили свой Nanohttpd в другой поток ... – RRTW

ответ

0

Try:

getActivity().runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      Toast.makeText(mContext, "Helloooooo...!!!", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
0

Поместите свой Nanohttpd в сервис, так что вы можете отправить LocalBroadCast вашей деятельности для отображения Тост или любой другой ответ UI.