gpt4 book ai didi

android - 无障碍服务不允许释放应用程序内存

转载 作者:行者123 更新时间:2023-11-30 03:23:39 24 4
gpt4 key购买 nike

我在我的应用中使用了一项普通服务和一项无障碍服务

如果我没有为我的应用程序启用辅助功能服务,它会在我关闭我的应用程序后很快释放所有内存,并在另一个服务运行时最终只占用 2.7mb。

但是在我启用辅助功能服务后,它会占用我所有的应用程序内存,并且即使在很长一段时间后也不会释放它。

出于测试目的,我使用了一个空的无障碍服务类,其中没有任何内容,但它仍然占据了我的应用内存近 30mb。

请帮我解决这个问题。非常感谢您的建议以下是我使用过的代码

AndroidManifest.xml

<application>
....
<service android:name="com.test.service.MyAccessibilityService"
android:label="@string/accessibility_service_label">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
....
</application>

我的AccessibilityService.java

public class MyAccessibilityService extends AccessibilityService {
...
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {

System.out.println("My event: "+event.getText().toString());
}

@Override
public void onInterrupt() {
}

@Override
public void onServiceConnected() {

AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_ALL_MASK;
info.notificationTimeout = 100;
setServiceInfo(info);
}

...
}

就像您在上面看到的一样简单,我没有在辅助功能服务类中编写任何代码,但是当通过设置 -> 辅助功能启用辅助功能时,它仍然不允许释放我的应用程序内存。

最佳答案

将您的许可放在应用程序标签之外

 <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
<application>....</application>

关于android - 无障碍服务不允许释放应用程序内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com