重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
android实现网页源码查看器。思路是,先把组件设计好,然后编写java代码来实现整个流程。主要通过实现网页源码查看器的过程,来理解handle的流程。
成都创新互联-专业网站定制、快速模板网站建设、高性价比清徐网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式清徐网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖清徐地区。费用合理售后完善,十多年实体公司更值得信赖。
第一部分:
以上图片是组件的代码。
第二部分:
public class MainActivity extends AppCompatActivity {
private EditText et_url;
private button btn_show;
private TextView tv_code;
private Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
String temp = (String) msg.obj;
tv_code.setText(temp);
}
};
@Override
protected void onCreate(bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_url = (EditText) findViewbyId(R.id.et_url);
btn_show = (button) findViewbyId(R.id.btn_show);
tv_code = (TextView) findViewbyId(R.id.tv_code);
btn_show.setOnClickListener(new MyonClicklistener());
}
private class MyonClicklistener implements View.OnClickListener {
@Override
public void onClick(View v){
new Thread(){
public void run(){
String path = et_url.getText().toString().trim();
URL url = null;
try {
url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(10000);
int code = connection.getResponseCode();
if(code==200){
InputStream inputStream = connection.getInputStream();
String result = Utils.getStringFromStream(inputStream);
Message msg = new Message();
msg.obj=result;
handler.sendMessage(msg);
//tv_code.setText(result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
}
}
这个代码是main的代码,还需要一个类,
public class Utils {
public static String getStringFromStream(InputStream inputStream) throws IOException {
byteArrayOutputStream baso = new byteArrayOutputStream();
int len = -1;
byte[] buffer = new byte[1024];
while((len = inputStream.read(buffer))!=-1){
baso.write(buffer, 0, len);
}
inputStream.close();
byte[] byteArray = baso.tobyteArray();
return new String(byteArray);
}
}
这个图片是运行结果图片。
一共需要这两个类。
总结,在郑州app开发中,尤其需要注意:
1、联网必须在子线程中操作。
2、子线程不能修改UI,修改UI必须在主线程进行。