gpt4 book ai didi

java - 检查人行横道是否正在通过 Java 代码运行

转载 作者:行者123 更新时间:2023-12-03 21:30:08 25 4
gpt4 key购买 nike

我添加了一些还包含 IntentService 的 cordova 插件代码。

此服务将定期调用,即使应用未运行。

但是像“new XWalkCookieManager().getCookie(url)”这样的人行横道方法会崩溃(“这个应用程序已经关闭”+ logcat 中的崩溃)。实例 new XWalkCookieManager() 运行良好,但 getCookie 崩溃。

我已经尝试调试它但没有成功,因为您无法将调试器附加到已关闭的应用程序。

XWalks 类/方法之一中是否有属性或方法来检查人行横道当前是否正在运行?

最好是这样的:

if(new XWalkCookieManager().isAvailable()) {
//do stuff like getCookie
}

防止崩溃。

最佳答案

与此同时,我找到了一种解决方法,以确保仅在应用程序未被终止时才执行人行横道方法。它与我的用例高度相关,因此需要在另一段代码中满足要求。

我的用例是,在后台位置事件中,我想发送 HTTP 请求。我需要包括人行横道应用程序最后使用的 cookie。我更改了应用程序,以便它始终将人行横道 cookie 保存在 SharedPreferences 对象中(它调用我的 cordovaplugin 并告诉它 saveCookie(),然后插件从人行横道获取它) .

对于读取 cookie,这就足够了,因为我现在可以随时从 SharedPreferences 读取 cookie。

现在的问题是:当我在响应中收到新的 cookie 时,我可以将它们写回人行横道吗?如果应用程序正在运行,我将不得不执行 new XWalkCookieManager().setCookies()。这会在已终止的应用程序中执行时崩溃,因为在发生位置更新时人行横道未运行。

所以我的解决方法是:我会先将 cookie 保存回 SharedPreferences。然后我将 Broadcast 发送到包含 cookie 的 MainActivity。我还扩展了 MainActivity(使用 cordova Hook 脚本)以包含一个 BroadcastReciever,然后将 cookie 保存到人行横道。 MainActivity 仅在应用程序运行时运行。当应用程序被终止并且因此 MainActivity 没有运行时,没有人会收到此 Broadcast 并且没有代码崩溃。

对于一个应该更容易解决的问题,这是一个巨大的解决方法。但似乎没有其他方法可以判断它是否正在运行(或者只是在那些 getCookies() 等方法中不会崩溃)。

关于java - 检查人行横道是否正在通过 Java 代码运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34763440/

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