|  |  |  | @ -19,6 +19,8 @@ package com.arialyy.simple.activity; | 
			
		
	
		
			
				
					|  |  |  |  | import android.content.BroadcastReceiver; | 
			
		
	
		
			
				
					|  |  |  |  | import android.content.Context; | 
			
		
	
		
			
				
					|  |  |  |  | import android.content.Intent; | 
			
		
	
		
			
				
					|  |  |  |  | import android.graphics.Bitmap; | 
			
		
	
		
			
				
					|  |  |  |  | import android.graphics.BitmapFactory; | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.Bundle; | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.Environment; | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.Handler; | 
			
		
	
	
		
			
				
					|  |  |  | @ -26,6 +28,7 @@ import android.os.Message; | 
			
		
	
		
			
				
					|  |  |  |  | import android.support.v7.widget.Toolbar; | 
			
		
	
		
			
				
					|  |  |  |  | import android.view.View; | 
			
		
	
		
			
				
					|  |  |  |  | import android.widget.Button; | 
			
		
	
		
			
				
					|  |  |  |  | import android.widget.ImageView; | 
			
		
	
		
			
				
					|  |  |  |  | import android.widget.TextView; | 
			
		
	
		
			
				
					|  |  |  |  | import android.widget.Toast; | 
			
		
	
		
			
				
					|  |  |  |  | import butterknife.Bind; | 
			
		
	
	
		
			
				
					|  |  |  | @ -53,6 +56,8 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  |   public static final  int    DOWNLOAD_RUNNING  = 0x07; | 
			
		
	
		
			
				
					|  |  |  |  |   private static final String DOWNLOAD_URL      = | 
			
		
	
		
			
				
					|  |  |  |  |       "http://static.gaoshouyou.com/d/3a/93/573ae1db9493a801c24bf66128b11e39.apk"; | 
			
		
	
		
			
				
					|  |  |  |  |   //private static final String DOWNLOAD_URL      =
 | 
			
		
	
		
			
				
					|  |  |  |  |   //    "http://img13.poco.cn/mypoco/myphoto/20120828/15/55689209201208281549023849547194135_001.jpg";
 | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.progressBar) HorizontalProgressBarWithNumber mPb; | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.start)       Button                          mStart; | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.stop)        Button                          mStop; | 
			
		
	
	
		
			
				
					|  |  |  | @ -60,6 +65,7 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.size)        TextView                        mSize; | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.toolbar)     Toolbar                         toolbar; | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.speed)       TextView                        mSpeed; | 
			
		
	
		
			
				
					|  |  |  |  |   @Bind(R.id.img)         ImageView                       mImg; | 
			
		
	
		
			
				
					|  |  |  |  |   private                 DownloadEntity                  mEntity; | 
			
		
	
		
			
				
					|  |  |  |  |   private BroadcastReceiver mReceiver = new BroadcastReceiver() { | 
			
		
	
		
			
				
					|  |  |  |  |     @Override public void onReceive(Context context, Intent intent) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -76,14 +82,14 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  |       switch (msg.what) { | 
			
		
	
		
			
				
					|  |  |  |  |         case DOWNLOAD_RUNNING: | 
			
		
	
		
			
				
					|  |  |  |  |           Task task = (Task) msg.obj; | 
			
		
	
		
			
				
					|  |  |  |  |           long current = task.getDownloadEntity().getCurrentProgress(); | 
			
		
	
		
			
				
					|  |  |  |  |           long len = task.getDownloadEntity().getFileSize(); | 
			
		
	
		
			
				
					|  |  |  |  |           long current = task.getCurrentProgress(); | 
			
		
	
		
			
				
					|  |  |  |  |           long len = task.getFileSize(); | 
			
		
	
		
			
				
					|  |  |  |  |           if (len == 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             mPb.setProgress(0); | 
			
		
	
		
			
				
					|  |  |  |  |           } else { | 
			
		
	
		
			
				
					|  |  |  |  |             mPb.setProgress((int) ((current * 100) / len)); | 
			
		
	
		
			
				
					|  |  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |  |           mSpeed.setText(CommonUtil.formatFileSize(task.getDownloadEntity().getSpeed()) + "/s"); | 
			
		
	
		
			
				
					|  |  |  |  |           mSpeed.setText(CommonUtil.formatFileSize(task.getSpeed()) + "/s"); | 
			
		
	
		
			
				
					|  |  |  |  |           break; | 
			
		
	
		
			
				
					|  |  |  |  |         case DOWNLOAD_PRE: | 
			
		
	
		
			
				
					|  |  |  |  |           mSize.setText(CommonUtil.formatFileSize((Long) msg.obj)); | 
			
		
	
	
		
			
				
					|  |  |  | @ -117,6 +123,11 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  |           mStart.setText("重新开始?"); | 
			
		
	
		
			
				
					|  |  |  |  |           mCancel.setEnabled(false); | 
			
		
	
		
			
				
					|  |  |  |  |           setBtState(true); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |           //String path = Environment.getExternalStorageDirectory().getPath() + "/test.jpg";
 | 
			
		
	
		
			
				
					|  |  |  |  |           //Bitmap bm = BitmapFactory.decodeFile(path);
 | 
			
		
	
		
			
				
					|  |  |  |  |           //mImg.setImageBitmap(bm);
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |           break; | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  |  | @ -159,21 +170,10 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private void init() { | 
			
		
	
		
			
				
					|  |  |  |  |     mEntity = Aria.get(this).getDownloadEntity(DOWNLOAD_URL); | 
			
		
	
		
			
				
					|  |  |  |  |     if (mEntity != null) { | 
			
		
	
		
			
				
					|  |  |  |  |       mPb.setProgress((int) ((mEntity.getCurrentProgress() * 100) / mEntity.getFileSize())); | 
			
		
	
		
			
				
					|  |  |  |  |       mSize.setText(CommonUtil.formatFileSize(mEntity.getFileSize())); | 
			
		
	
		
			
				
					|  |  |  |  |       if (mEntity.getState() == DownloadEntity.STATE_DOWNLOAD_ING) { | 
			
		
	
		
			
				
					|  |  |  |  |         setBtState(false); | 
			
		
	
		
			
				
					|  |  |  |  |       } else if (mEntity.isDownloadComplete()) { | 
			
		
	
		
			
				
					|  |  |  |  |         mStart.setText("重新开始?"); | 
			
		
	
		
			
				
					|  |  |  |  |         setBtState(true); | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |  |       mEntity = new DownloadEntity(); | 
			
		
	
		
			
				
					|  |  |  |  |       mEntity.setFileName("test.apk"); | 
			
		
	
		
			
				
					|  |  |  |  |       mEntity.setDownloadUrl(DOWNLOAD_URL); | 
			
		
	
		
			
				
					|  |  |  |  |       mEntity.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk"); | 
			
		
	
		
			
				
					|  |  |  |  |     if (Aria.get(this).taskExists(DOWNLOAD_URL)) { | 
			
		
	
		
			
				
					|  |  |  |  |       AMTarget target = Aria.whit(this).load(DOWNLOAD_URL); | 
			
		
	
		
			
				
					|  |  |  |  |       int      p      = (int) (target.getCurrentProgress() * 100 / target.getFileSize()); | 
			
		
	
		
			
				
					|  |  |  |  |       mPb.setProgress(p); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -197,22 +197,28 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private void resume() { | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(mEntity).resume(); | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(DOWNLOAD_URL).resume(); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private void start() { | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(mEntity).start(); | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this) | 
			
		
	
		
			
				
					|  |  |  |  |         .load(DOWNLOAD_URL) | 
			
		
	
		
			
				
					|  |  |  |  |         .setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk") | 
			
		
	
		
			
				
					|  |  |  |  |         .setDownloadName("test.apk") | 
			
		
	
		
			
				
					|  |  |  |  |         //.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.jpg")
 | 
			
		
	
		
			
				
					|  |  |  |  |         //.setDownloadName("test.jpg")
 | 
			
		
	
		
			
				
					|  |  |  |  |         .start(); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private void stop() { | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(mEntity).stop(); | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(DOWNLOAD_URL).stop(); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private void cancel() { | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(mEntity).cancel(); | 
			
		
	
		
			
				
					|  |  |  |  |     Aria.whit(this).load(DOWNLOAD_URL).cancel(); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private class MySchedulerListener extends AMTarget.SimpleSchedulerListener { | 
			
		
	
		
			
				
					|  |  |  |  |   private class MySchedulerListener extends Aria.SimpleSchedulerListener { | 
			
		
	
		
			
				
					|  |  |  |  |     @Override public void onTaskStart(Task task) { | 
			
		
	
		
			
				
					|  |  |  |  |       mUpdateHandler.obtainMessage(DOWNLOAD_PRE, task.getDownloadEntity().getFileSize()) | 
			
		
	
		
			
				
					|  |  |  |  |           .sendToTarget(); | 
			
		
	
	
		
			
				
					|  |  |  | @ -220,8 +226,7 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override public void onTaskResume(Task task) { | 
			
		
	
		
			
				
					|  |  |  |  |       super.onTaskResume(task); | 
			
		
	
		
			
				
					|  |  |  |  |       mUpdateHandler.obtainMessage(DOWNLOAD_PRE, task.getDownloadEntity().getFileSize()) | 
			
		
	
		
			
				
					|  |  |  |  |           .sendToTarget(); | 
			
		
	
		
			
				
					|  |  |  |  |       mUpdateHandler.obtainMessage(DOWNLOAD_PRE, task.getFileSize()).sendToTarget(); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Override public void onTaskStop(Task task) { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |