Blankj / Blankj/AndroidUtilCode

processHideSoftInputOnActivityDestroy里面的window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)会引起卡顿

Aperta
#1,835 0 commenti 0 reazioni 1 assegnatario Rivendicata da @Blankj Vedi su GitHub
bug
Lingua principale
Java
Stelle
33.6k
Fork
10.6k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## 描述 Bug
听云报了一堆卡顿问题,定位在了processHideSoftInputOnActivityDestroy里面的window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)

- AndroidUtilCode 的版本:1.31.1
- 出现 Bug 的设备型号:小米 Redmi 50等一系列小米手机 见后面的截图
- 设备的 Android 版本:Android 12 到 Android 15都有 见后面的截图

## 相关代码

以下代码中的:window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
```java
private void processHideSoftInputOnActivityDestroy(final Activity activity, boolean isSave) {
try {
if (isSave) {
Window window = activity.getWindow();
final WindowManager.LayoutParams attrs = window.getAttributes();
final int softInputMode = attrs.softInputMode;
window.getDecorView().setTag(-123, softInputMode);
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
} else {
final Object tag = activity.getWindow().getDecorView().getTag(-123);
if (!(tag instanceof Integer)) return;
UtilsBridge.runOnUiThreadDelayed(new Runnable() {
@Override
public void run() {
try {
Window window = activity.getWindow();
if (window != null) {
window.setSoftInputMode(((Integer) tag));
}
} catch (Exception ignore) {
}
}
}, 100);
}
} catch (Exception ignore) {
}
}
```

## 截图
听云报的卡顿信息
![Image](https://github.com/user-attachments/assets/cb3ccc64-b1b7-4317-b7da-1cd3b3eacade)
系统分布
![Image](https://github.com/user-attachments/assets/8ecd62b6-1c35-47d8-8402-eae598bee8cc)
手机型号分布
![Image](https://github.com/user-attachments/assets/7060ff92-ab49-4a58-b6dc-a34bc4bd5a6f)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.