1.Android 9之后 网络请求需要加载适配文件:
network_security_config.xml:
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" overridePins="true" />
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>
在应用配置文件.xml中 Application中配置:
android:networkSecurityConfig="@xml/network_security_config"
加载配置文件即可
2.解决Handler内存溢出问题创建静态并且继承Handler的类,使用WeakReference弱引用加载activity在其中使用handler的各种功能
//防止Handler内存溢出 创建静态继承Handler子类
static class MyHandler extends Handler {
private WeakReference<MainActivity> wr;
public MyHandler(MainActivity ma){
wr = new WeakReference<MainActivity>(ma);
}
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(msg.what == 1) {
wr.get().img.setVisibility(View.GONE);
wr.get().txt.setText("打到了" + wr.get().numberClick + "只,共10只");
}else if(msg.what == 2) {
wr.get().img.setVisibility(View.VISIBLE);
}else if(msg.what == 3) {
wr.get().flag = false;
wr.get().btn.setText("开始");
wr.get().txt.setText("点击开始吧....");
wr.get().img.setVisibility(View.GONE);
wr.get().numberClick = 0;
}
}
}
3.runOnUiThread 重写run方法 可以在子线程中使用在主线程中更新UI界面