安卓开发笔记,mars视频教程18中无法下载文件

mars视频给力程度我就不赘述,学到18集 的时候,敲了源代码,

程序结果

下载文本:System.out不输出文本

下载MP3:输出-1.

换了tomcat不行,本来用的8,改用tomcat7,发现结果还是一样

觉得很奇怪,然后把代码复制出来,在java里跑,发现结果很正常,


先贴出LOGcat,这个看半天看不懂,承认自己小白.


好,然后各种搜,不知道该怎么搜,android的错误不是自己的错误,

其实这里的第一行已经给出了错误,  networkonmainthreadexception,

网络在主线程异常,意思就是不能在主线程?百度了下,度娘里的高手说,安卓4以后不允许在主进程中进行网络连接.

好的,那我开个线程,代码入下,以文本为例:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        downloadTxtButton = (Button)findViewById(R.id.downloadTxt);
        downloadTxtButton.setOnClickListener(new DownloadTxtListener());
        downloadMp3Button = (Button)findViewById(R.id.downloadMp3);
        downloadMp3Button.setOnClickListener(new DownloadMp3Listener());
        
        mThread = new Thread(new Runnable() {

            @Override
            public void run() {
                try {
               	 HttpDownloader httpDownloader = new HttpDownloader();
        	 String lrc = httpDownloader.download("http://edu.gamfe.com/tutor/d/37218.html");
        	 System.out.println(lrc);
                    
                }catch (Exception e) {
                    e.printStackTrace();
                }

            }
        });
    }

这是oncreate方法中添加的线程,

下面是按钮监听,sleep保证线程的执行

class DownloadTxtListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			mThread.start();
			try {
				Thread.currentThread().sleep(500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
    	
    }

,好的,看下结果,正确,OK



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值