【Android 开发教程】在服务中执行耗时操作

本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


上一节创建的服务实际上并没有做任何有用的事情,这一节将修改一下它,让它去执行一个任务:模拟下载文件。

1. 使用上一节的Services工程,做一点修改。

public class MyService extends Service {

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
	
	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		// We want this service to continue running until it is explicitly
		// stopped, so return sticky.
		
		// Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
		
        try {
			int result = DownloadFile(new URL("http://www.abcd.com/file.zip"));
			Toast.makeText(getBaseContext(),
				"Downloaded " + result + " bytes",
				Toast.LENGTH_LONG).show();
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }		
	
		return START_STICKY;
	}
	
    private int DownloadFile(URL url) {
        try {
            //---simulate taking some time to download a file---
            Thread.sleep(5000);
        } catch (InterruptedException e) {
             e.printStackTrace();
        }
        //---return an arbitrary number representing 
        // the size of the file downloaded---
        return 100;
    }
        
	@Override
	public void onDestroy() {
		super.onDestroy();
		Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
	}
}


2. 在模拟器上面进行调试。点击start按钮,开始下载文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值