Android应用中如何异步下载图片并将图片保存到本地DEMO中-创新互联

Android应用中如何异步下载图片并将图片保存到本地DEMO中?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、雅安服务器托管、营销软件、网站建设、横县网站维护、网站推广。

下面是demo中的Activity。

public class MainActivity extends Activity { 
 protected static final int SUCCESS_GET_CONTACT = 0; 
 private ListView mListView; 
 private MyContactAdapter mAdapter; 
 private File cache; 
 private Handler mHandler = new Handler(){ 
  public void handleMessage(android.os.Message msg) { 
   if(msg.what == SUCCESS_GET_CONTACT){ 
    List contacts = (List) msg.obj; 
    mAdapter = new MyContactAdapter(getApplicationContext(),contacts,cache); 
    mListView.setAdapter(mAdapter); 
   } 
  }; 
 }; 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  mListView = (ListView) findViewById(R.id.listview); 
  //创建缓存目录,系统一运行就得创建缓存目录的, 
  cache = new File(Environment.getExternalStorageDirectory(), "cache"); 
  if(!cache.exists()){ 
   cache.mkdirs(); 
  } 
  //获取数据,主UI线程是不能做耗时操作的,所以启动子线程来做 
  new Thread(){ 
   public void run() { 
    ContactService service = new ContactService(); 
    List contacts = null; 
    try { 
     contacts = service.getContactAll(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    //子线程通过Message对象封装信息,并且用初始化好的, 
    //Handler对象的sendMessage()方法把数据发送到主线程中,从而达到更新UI主线程的目的 
    Message msg = new Message(); 
    msg.what = SUCCESS_GET_CONTACT; 
    msg.obj = contacts; 
    mHandler.sendMessage(msg); 
   }; 
  }.start(); 
 } 
 @Override 
 protected void onDestroy() { 
  super.onDestroy(); 
  //清空缓存 
  File[] files = cache.listFiles(); 
  for(File file :files){ 
   file.delete(); 
  } 
  cache.delete(); 
 } 
} 

本文标题:Android应用中如何异步下载图片并将图片保存到本地DEMO中-创新互联
网站链接:http://hbruida.cn/article/ddeidg.html