我正在尝试获取this网址的内容。每次刷新都会更改内容。
我写了我的代码来获取内容并通过按钮单击使用TextView在我的应用程序中显示它。
但是获取数据并显示到Textview需要更多时间(最少2秒,最长6秒)。因此,我需要在代码中进行哪些更改才能使其高效并减少延迟。
(使用 URLConnection 方法在 getData ()方法中取物)
public class MainActivity extends AppCompatActivity {
TextView resultView;
String TAG="MainActivity kbt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.enableDefaults();
resultView = (TextView) findViewById(R.id.result);
try {
getData();
} catch (IOException e) {
e.printStackTrace();
}
Button insert=(Button) findViewById(R.id.button);
insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
try {
getData();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
public void getData() throws IOException {
String result = "";
InputStream isr = null;
URLConnection urlConnection = null;
URL url = new URL("http://kbtganesh.16mb.com/index.php");
urlConnection = url.openConnection();
isr =urlConnection.getInputStream();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(isr));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
isr.close();
result=sb.toString();
}
catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//parse json data
try {
resultView.setText(result);
}
catch(Exception e) {
Log.e("log_tag", "Couldn't set text, damnit.");
}
}
}
先谢谢(:
答案 0 :(得分:0)
尝试在计算机上的本地服务器上测试它,而不是像您那样远程测试。有时它只会降低网速,降低网页速度,与代码无关。
答案 1 :(得分:0)
删除StrictMode.enableDefaults();
,而不是使用AsyncTask从网络中获取数据,如文档所述
“保持磁盘和网络操作脱离主线程,使应用程序更加顺畅,响应更快”
在此处查看文档StrictMode Doce
其他一切看起来都很好你也可以检查webservice端的改进检查查询它可以优化,因为你的api返回的数据非常少