Android 利用Service实现下载网络图片至sdk卡
1 package com.example.myapp5; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.widget.Button; 8 /** 9 * Android 利用service实现下载图片功能 10 * @author shaobn 11 * @date 2015-9-14 12 * @packege com.example.myapp5.MyApp5 13 */ 14 public class MainActivity extends Activity { 15 private Button button; 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 button = (Button) this.findViewById(R.id.button1); 21 button.setOnClickListener(new View.OnClickListener() { 22 23 @Override 24 public void onClick(View arg0) { 25 // TODO Auto-generated method stub 26 Intent intent = new Intent(MainActivity.this,MyService.class); 27 startService(intent); 28 } 29 }); 30 } 31 }
1 package com.example.myapp5; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 6 import org.apache.http.HttpResponse; 7 import org.apache.http.client.HttpClient; 8 import org.apache.http.client.methods.HttpGet; 9 import org.apache.http.impl.client.DefaultHttpClient; 10 import org.apache.http.util.EntityUtils; 11 12 import android.app.Service; 13 import android.content.Intent; 14 import android.os.Environment; 15 import android.os.Handler; 16 import android.os.IBinder; 17 import android.os.Message; 18 import android.widget.Toast; 19 20 public class MyService extends Service { 21 private final static String IMAGEPAH = "https://www.baidu.com/img/bd_logo1.png"; 22 @Override 23 public void onCreate() { 24 // TODO Auto-generated method stub 25 super.onCreate(); 26 } 27 @Override 28 public IBinder onBind(Intent arg0) { 29 // TODO Auto-generated method stub 30 return null; 31 } 32 33 @Override 34 public int onStartCommand(Intent intent, int flags, int startId) { 35 // TODO Auto-generated method stub 36 final Handler handler = new Handler(){ 37 38 public void handleMessage(android.os.Message msg) { 39 if(msg.what==1){ 40 Toast.makeText(getApplicationContext(), "关闭了", 1).show(); 41 stopSelf(); 42 } 43 }; 44 45 }; 46 new Thread(new Runnable() { 47 48 @Override 49 public void run() { 50 // TODO Auto-generated method stub 51 HttpClient httpClient = new DefaultHttpClient(); 52 HttpGet httpGet = new HttpGet(IMAGEPAH); 53 HttpResponse httpResponse = null; 54 File file = Environment.getExternalStorageDirectory(); 55 File file2 = null; 56 FileOutputStream fos = null; 57 try { 58 httpResponse =httpClient.execute(httpGet); 59 if (httpResponse.getStatusLine().getStatusCode()==200) { 60 byte[] num = EntityUtils.toByteArray(httpResponse.getEntity()); 61 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 62 file2 = new File(file, "/Movies/a.jpg"); 63 file2.createNewFile(); 64 fos = new FileOutputStream(file2); 65 fos.write(num); 66 Message message = Message.obtain(); 67 message.what = 1; 68 handler.sendMessage(message); 69 } 70 } 71 72 } catch (Exception e) { 73 e.printStackTrace();// TODO: handle exception 74 }finally{ 75 if(fos!=null){ 76 try { 77 fos.close(); 78 } catch (Exception e2) { 79 // TODO: handle exception 80 e2.printStackTrace(); 81 } 82 } 83 84 } 85 86 } 87 }).start(); 88 return super.onStartCommand(intent, flags, startId); 89 } 90 @Override 91 public void onDestroy() { 92 // TODO Auto-generated method stub 93 super.onDestroy(); 94 } 95 }
吾宁做一叶扁舟,始航于湖边,遨游于海上,浪迹于江中。