我的代码有问题,我希望得到一些帮助.我是第一次使用这段代码:
new DefaultHttpClient().execute(new HttpGet(linkk)).getEntity().writeTo(
new FileOutputStream(f));
Run Code Online (Sandbox Code Playgroud)
它在Android 2.3上运行得很好但在4.0上却没有.经过一些研究,我听说使用AndroidHttpClient更好,这样它就可以在4.0和3.1上运行.问题是我不知道我是否正确修改了我的代码,而且互联网上没有太多关于AndroidhttpClient的例子.
这是我调整后的代码:
AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
HttpGet request = new HttpGet(linkk);
HttpResponse response = client.execute(request); //here is where the exception is thrown
response.getEntity().writeTo(new FileOutputStream(f));
Run Code Online (Sandbox Code Playgroud)
这是logcat显示的内容:
01-03 01:32:11.950: W/dalvikvm(17991): threadid=1: thread exiting with uncaught exception (group=0x40a2e1f8)
01-03 01:32:11.986: E/AndroidRuntime(17991): FATAL EXCEPTION: main
01-03 01:32:11.986: E/AndroidRuntime(17991): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lacra.fbirthdays/com.lacra.fbirthdays.ListV}: android.os.NetworkOnMainThreadException
01-03 01:32:11.986: E/AndroidRuntime(17991): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
01-03 01:32:11.986: E/AndroidRuntime(17991): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
01-03 01:32:11.986: E/AndroidRuntime(17991): at android.app.ActivityThread.access$600(ActivityThread.java:123)
01-03 01:32:11.986: E/AndroidRuntime(17991): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
01-03 01:32:11.986: …Run Code Online (Sandbox Code Playgroud) 我有一个ImageButton,它在单击时执行长时间运行的操作.所以我试图做的不成功的是在onClick调用开始时更改图像并在结束时将其更改回来.
我已经尝试了下面的代码,但我发现在onClick完成后android重绘了按钮图像,所以没用.
如果可能的话,我也愿意采取其他方式来做到这一点.
下面是我使用的代码片段.Thread.sleep表示长时间运行的操作.我想在执行到达睡眠状态时看到图像更改,而不是在onClick完成后.
btnTest = (ImageButton) findViewById(R.id.btnTest);
btnTest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("start");
btnTest.setImageResource(R.drawable.add);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println("end");
btnTest.setImageResource(R.drawable.del);
}
});
Run Code Online (Sandbox Code Playgroud)