不能在Android小部件按钮上进行Http请求。

时间:2018-08-31 00:31:10

标签: android http request httprequest

这真的很奇怪。 代码很简单。 单击按钮时,它会向网站发出请求的getNaverHtmlOn函数。

但是在那里,当我的手机未插入电源时, 它没有用。但是当我插入手机时,它可以工作。

,并且当我的手机未插入电源时, 按下按钮并启动应用,然后http请求工作

如何在不插入手机的情况下完成http请求

public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    super.onReceive(context, intent);

    if (SYNC_CLICKED.equals(intent.getAction())) {

        Log.e("main","clicked");
        Toast.makeText(context,"1",Toast.LENGTH_SHORT).show();


        new Thread() {
        public void run() {
             getNaverHtmlOn();
        }
    }.start();
        Log.e("main","clicked333");


    }
  }



private String getNaverHtmlOn() {
        String naverHtml = "";

        HttpURLConnection con = null;
        InputStreamReader isr = null;
        BufferedReader br = null;

        try{
            URL url = new URL("https://xxxxx.herokuapp.com/xxxx?xxx=015EF&xxx=0");
            con = (HttpURLConnection) url.openConnection();
            con.setConnectTimeout(10000);
            con.setReadTimeout(10000);

            isr = new InputStreamReader(con.getInputStream());
            br = new BufferedReader(isr);

            String str = null;

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(con != null){
                try{con.disconnect();}catch(Exception e){}
            }

            if(isr != null){
                try{isr.close();}catch(Exception e){}
            }

            if(br != null){
                try{br.close();}catch(Exception e){}
            }
        }
        return naverHtml;
    }

1 个答案:

答案 0 :(得分:0)

  

当我的手机未插入电源时,它无法正常工作。但是当我插入手机时,它可以正常工作。

这可能是硬件问题。您的手机似乎处于省电模式。尝试在系统设置中删除它。

或者在另一部手机上运行您的应用程序,以确保这是硬件问题或奇怪的软件错误。