gpt4 book ai didi

android - 如何判断 Android 应用程序是否处于 "stopped"状态?

转载 作者:行者123 更新时间:2023-11-29 00:04:02 24 4
gpt4 key购买 nike

我有一个 Android 应用程序注册了一个 BroadcastReceiver 来处理铃声模式的变化。接收器是通过 list 注册的,而不是动态注册的。一些用户报告说,尽管手动启动应用程序并随后更改铃声模式确实会触发该应用程序,但该应用程序偶尔不会响应铃声模式更改。然而,一段时间后,该应用程序再次停止响应铃声模式更改。

症状听起来很可疑,好像应用程序正在进入“已停止”状态;但我没有任何理由相信用户会明确强制关闭应用程序,而且我不知道应用程序可以通过任何其他方式进入“已停止”状态。

有没有办法让用户确定他们(非 root)手机上的应用程序是否处于停止状态,以便我可以验证/使“停止”状态理论无效?我认为仅仅查看“强制关闭”按钮是否已启用是不够的,因为对于已停止的应用程序以及当前未运行的应用程序,它都会被禁用。

最佳答案

您可以使用以下代码查询设备上的所有应用程序并查看哪些应用程序处于停止状态:

private List<String> getStoppedPackages() {
ArrayList<String> stoppedPackages = new ArrayList<String>();
final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
boolean appStopped = (packageInfo.flags & ApplicationInfo.FLAG_STOPPED) != 0;
if (appStopped) {
String description = packageInfo.packageName;
stoppedPackages.add(description);
}
}
return stoppedPackages;
}

我在这里为您制作了一个实用程序:

https://github.com/davidgyoung/stopped-app-detector

关于android - 如何判断 Android 应用程序是否处于 "stopped"状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37464726/

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