改为使用getApplicationContext获取wifiManager,避免内存泄露

The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing getSystemService to getApplicationContext().getSystemService
This commit is contained in:
Lihongda 2024-01-04 05:19:01 +08:00
parent 24b01f308b
commit 42086ffee3
9 changed files with 15 additions and 71 deletions

View File

@ -1,13 +0,0 @@
package fm.jiecao.jcvideoplayer_lib;
import android.app.Application;
import android.test.ApplicationTestCase;
/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
super(Application.class);
}
}

View File

@ -305,7 +305,7 @@ public class BindCameraActivity extends BaseActivity {
unKnowSsidDialog(); unKnowSsidDialog();
return; return;
} }
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
List<ScanResult> scanResults = wifiManager.getScanResults(); List<ScanResult> scanResults = wifiManager.getScanResults();
for (ScanResult scanResult : scanResults) { for (ScanResult scanResult : scanResults) {
if (wifiname.equals(scanResult.SSID)) { if (wifiname.equals(scanResult.SSID)) {

View File

@ -592,7 +592,7 @@ public class BindTankActivity extends BaseActivity {
unKnowSsidDialog(); unKnowSsidDialog();
return; return;
} }
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
List<ScanResult> scanResults = wifiManager.getScanResults(); List<ScanResult> scanResults = wifiManager.getScanResults();
for (ScanResult scanResult : scanResults) { for (ScanResult scanResult : scanResults) {
if (wifiname.equals(scanResult.SSID)) { if (wifiname.equals(scanResult.SSID)) {

View File

@ -615,7 +615,7 @@ public class BindTankPetActivity extends BaseActivity {
unKnowSsidDialog(); unKnowSsidDialog();
return; return;
} }
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
List<ScanResult> scanResults = wifiManager.getScanResults(); List<ScanResult> scanResults = wifiManager.getScanResults();
for (ScanResult scanResult : scanResults) { for (ScanResult scanResult : scanResults) {
if (wifiname.equals(scanResult.SSID)) { if (wifiname.equals(scanResult.SSID)) {

View File

@ -42,7 +42,7 @@ public class DeviceRestartActivity extends BaseActivity {
findViewById(R.id.bt_setconnect).setOnClickListener(new View.OnClickListener() { findViewById(R.id.bt_setconnect).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (!wifiManager.isWifiEnabled()) { if (!wifiManager.isWifiEnabled()) {
ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启"); ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启");

View File

@ -66,7 +66,7 @@ public class HotSpotConnentActivity extends BaseActivity {
public void onClick(View v) { public void onClick(View v) {
// device_mac="5ccf7f99e929"; // device_mac="5ccf7f99e929";
// doPostBindDevice(); // doPostBindDevice();
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (!wifiManager.isWifiEnabled()) { if (!wifiManager.isWifiEnabled()) {
ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启"); ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启");
@ -194,7 +194,7 @@ public class HotSpotConnentActivity extends BaseActivity {
} }
public List<ScanResult> getWifiList() { public List<ScanResult> getWifiList() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
List<ScanResult> scanWifiList = wifiManager.getScanResults(); List<ScanResult> scanWifiList = wifiManager.getScanResults();
List<ScanResult> wifiList = new ArrayList<>(); List<ScanResult> wifiList = new ArrayList<>();
if (scanWifiList != null && scanWifiList.size() > 0) { if (scanWifiList != null && scanWifiList.size() > 0) {

View File

@ -1,66 +1,23 @@
package com.ifish.activity; package com.ifish.activity;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo; import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings; import android.provider.Settings;
import androidx.annotation.Nullable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import androidx.annotation.Nullable;
import com.ifish.basebean.BaseBean;
import com.ifish.basebean.ConnectMessageEvent;
import com.ifish.basebean.Device;
import com.ifish.baseclass.BaseActivity;
import com.ifish.baseclass.BaseGradeActivity;
import com.ifish.tcp.BackFunctionCode7_11;
import com.ifish.tcp.ModelCodec;
import com.ifish.tcp.OrderDeviceConnectModel;
import com.ifish.tcp.OrderModel;
import com.ifish.utils.AnimationUtil;
import com.ifish.utils.ByteUtil;
import com.ifish.utils.Commons;
import com.ifish.utils.Commons.LoginSPKey;
import com.ifish.utils.Commons.NetWork;
import com.ifish.utils.Commons.Text;
import com.ifish.utils.HttpListener;
import com.ifish.utils.HttpManager;
import com.ifish.utils.L;
import com.ifish.utils.SPUtil;
import com.ifish.utils.ToastUtil;
import com.ifish.utils.WifiAdmin;
import com.ifish.utils.WifiUtil;
import com.ifish.view.WifiDialog;
import com.ifish.wheelview.adapter.ArrayWheelAdapter;
import com.ifish.wheelview.view.WheelView;
import java.io.BufferedReader; import com.bumptech.glide.Glide;
import java.io.IOException; import com.ifish.basebean.ConnectMessageEvent;
import java.io.InputStreamReader; import com.ifish.baseclass.BaseActivity;
import java.net.DatagramPacket; import com.ifish.utils.AnimationUtil;
import java.net.DatagramSocket; import com.ifish.utils.ToastUtil;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import de.greenrobot.event.EventBus; import de.greenrobot.event.EventBus;
@ -105,7 +62,7 @@ public class HotSpotConnentSetWIFIActivity extends BaseActivity {
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (isjump) { if (isjump) {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (!wifiManager.isWifiEnabled()) { if (!wifiManager.isWifiEnabled()) {
ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启"); ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启");

View File

@ -602,7 +602,7 @@ public class NewBindDeviceChoiceActivity extends BaseActivity implements View.On
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (isjump) { if (isjump) {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (!wifiManager.isWifiEnabled()) { if (!wifiManager.isWifiEnabled()) {
ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启"); ToastUtil.show(getApplicationContext(), "请检查WiFi是否开启");

View File

@ -39,7 +39,7 @@ public class ReStartDeviceUtil {
} }
public void startDs() { public void startDs() {
WifiManager wifiManager = (WifiManager) act.getSystemService(WIFI_SERVICE); WifiManager wifiManager = (WifiManager) act.getApplicationContext().getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (!wifiManager.isWifiEnabled()) { if (!wifiManager.isWifiEnabled()) {
ToastUtil.show(act, "请检查WiFi是否开启"); ToastUtil.show(act, "请检查WiFi是否开启");