Бросать проблему исключения в Android - PullRequest
1 голос
/ 04 августа 2011

У меня есть приложение для Android, где мне нужно использовать логин. Для этого я должен проанализировать XML для входа в систему. я пишу следующий код под кнопкой входа в систему.

   loginButton.setOnClickListener(new OnClickListener()
        {      
            public void onClick(View v)
            {
                getInput();
                  parserMethod=new ParserMethod();
                    login=parserMethod.parseLoginStatus(userName,password,mobileNo,code);

                  if(login.getLoginStatus().equals("Sucess.."))
                  {
                      i=new Intent();
                      i.setClass(LoginActivity.this, MainActivity.class);
                      startActivity(i);  
                  }                  
            }               
        }); 

public Login parseLoginStatus(String userName, String password,String mobileNo, String code) 
{
    String sourceString="http://www.example.info/mobapp/Web_service/checkLogin.php?userId=robin&password=123456&mobile=0&code=8080&output=xml";
    loadParseData(sourceString);
    return MyXMLHandler.login;
}



    private void loadParseData(String sourceString) 
{
    try
    {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        URL sourceUrl=new URL(sourceString);
        MyXMLHandler myXMLHandler = new MyXMLHandler();
        xr.setContentHandler(myXMLHandler);
        xr.parse(new InputSource(sourceUrl.openStream()));          
    }
    catch(Exception e)
    {
        System.out.println("XML Pasing Excpetion = " + e);
    }   
}

Но проблема в том, что когда сеть недоступна или xml недоступен, приложение перестало работать. Как я могу решить проблему. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

это должно решить вашу проблему ...

 public Login parseLoginStatus(String userName, String password,String mobileNo, String code) 
    {
        String sourceString="http://www.amarhost.info/mobapp/Web_service/checkLogin.php?userId=databiz&password=123456&mobile=0&code=8080&output=xml";

    if(sourceString.equals("message it gives when there is no net connection")){
    return null;
    }
        //String sourceString="http://www.amarhost.info/mobapp/Web_service/checkLogin.php?userId="+userName+"&password="+password+"&mobile="+mobileNo+"&code="+code+"&output=xml";
        loadParseData(sourceString);
        return MyXMLHandler.login;
    }
0 голосов
/ 04 августа 2011

Прежде всего, вы не должны обрабатывать вход в основной поток пользовательского интерфейса (внутри кнопки OnCLickListener).Пожалуйста, следуйте этой статье , чтобы проверить, как использовать AsyncTask.

...