日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android学习笔记之SoftReference软引用,弱引用WeakReference

發(fā)布時間:2025/3/20 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android学习笔记之SoftReference软引用,弱引用WeakReference 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SoftReference可以用于bitmap緩存

WeakReference 可以用于handler

?

?非靜態(tài)內(nèi)部類和匿名內(nèi)部類容易造成內(nèi)存泄漏

?

private Handler mRemoteHandler = new SafeHandler(this);private static final int INIT_UI = 1;/*** safe handler 靜態(tài)內(nèi)部類*/private static class SafeHandler extends Handler {private final WeakReference<MainActivity> mActivitys;public SafeHandler(MainActivity preview) {mActivitys = new WeakReference<MainActivity>(preview);}@Overridepublic void handleMessage(Message msg) {MainActivity activity = mActivitys.get();if (activity != null) {if (null != msg) {switch (msg.what) {case INIT_UI:activity.initView();activity.updateUI();break;default:break;}}}}}

?

?

?

import android.os.AsyncTask; import android.text.TextUtils;import com.roadrover.settings.network.NetSupplier; import com.roadrover.settings.network.NetworkBean; import com.roadrover.utils.Logcat;import java.lang.ref.WeakReference; import java.util.Arrays;/** 不是內(nèi)部類*/ public class HotSpotSafeTask extends AsyncTask<Void, Void, String[]> {// 弱引用允許Activity被垃圾收集器清理private final WeakReference<HotSpotFragment> weakFragment;public HotSpotSafeTask(HotSpotFragment fragment) {this.weakFragment = new WeakReference<>(fragment);}@Overridepublic String[] doInBackground(Void... params) {// do async stuff here// 重新獲取Fragment的強引用,并且判斷是否存活HotSpotFragment fragment = weakFragment.get();if (fragment == null || fragment.isDetached()) {// Fragment死亡了,不再做任何的事情return null;}String[] config = fragment.getWifiApConfig();return config;}@Overridepublic void onPostExecute(String[] config) {// 重新獲取Fragment的強引用,并且判斷是否存活HotSpotFragment fragment = weakFragment.get();if (fragment == null || fragment.isDetached()) {// Fragment死亡了,不再做任何的事情return;}// The Fragment is still valid, do main-thread stuff hereif ((config != null) && (config.length == 3)) {if (null != fragment) {Logcat.d("getWifiApConfig " + Arrays.toString(config));fragment.setName(config[0]);if (!TextUtils.isEmpty(config[1])) {fragment.setPassword(config[1]);} }}} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/lipeineng/p/6904139.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Android学习笔记之SoftReference软引用,弱引用WeakReference的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。