@ZeroGeek
2015-08-28T10:04:38.000000Z
字数 1198
阅读 683
android
以下摘自官网
class BitmapWorkerTask extends AsyncTask {
private final WeakReference imageViewReference;
private int data = 0;
public BitmapWorkerTask(ImageView imageView) {
// Use a WeakReference to ensure the ImageView can be garbage collected
imageViewReference = new WeakReference(imageView);
}
// Decode image in background.
@Override
protected Bitmap doInBackground(Integer... params) {
data = params[0];
return decodeSampledBitmapFromResource(getResources(), data, 100, 100));
}
// Once complete, see if ImageView is still around and set bitmap.
@Override
protected void onPostExecute(Bitmap bitmap) {
if (imageViewReference != null && bitmap != null) {
final ImageView imageView = imageViewReference.get();
if (imageView != null) {
imageView.setImageBitmap(bitmap);
}
}
}
}
以下为本人项目中的代码片段,完整代码
static class WeakReferenceHander extends Handler {
private final WeakReference<ShareUploadActivity> mActivity;
public WeakReferenceHander(ShareUploadActivity activity) {
mActivity = new WeakReference<ShareUploadActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
if (mActivity.get() != null) {
mActivity.get().handleReceiveMessage(msg);
}
}
}