为什么可运行的回调会自动破坏活动?
我想知道我们是否有可能在Android上处理/检测具有延迟(方法)的可运行回调?postDelayed
例如,我的应用程序(用于测试目的的应用程序)上有一个或多个初始屏幕(与 一起运行)。在这个应用程序中,我还有一个库(我正在创建并在应用程序中使用它)和一些在类上运行的可用的类。handler.postDelayed(new Runnable()...
IntentService
有时,当应用程序运行我正在创建的库的“活动(for)”时,可能会在 UI 中自动弹出一些活动。但是,如果这些活动出现在某个活动上并且正在被销毁,则这些活动(自动弹出的)也将被销毁,并在logcat中记录“泄漏窗口”消息。splashscreen
Testing purpose
splashscreen
splashscreen
问题是:
- 那些自动出现在UI中的活动不应该自动关闭,这是被禁止的。它需要来自用户的交互来关闭该活动,并返回到应用程序的正常行为。
- 此外,该库对应用程序的 UI 一无所知。
所以我的问题是(相对于我正在创建的库端,没有UI应用程序流的信息):
- 有没有办法检测是否在应用程序中相对于库端创建了某些 postDelayed 方法?如果是,我该如何处理这个问题?
附言:请注意,通常情况下,我正在为假设自动出现的活动使用对话框。
更新
图表说明:
现在我有一个正在执行初始屏幕的情况。
扩展 IntentService 类的类已收到来自 Internet 的请求,该请求将启动一个活动。
同时,初始屏幕打开,另一个活动已创建并显示在 UI 中。当 X 秒过去并且其他活动尚未销毁时,将创建下一个活动并自动销毁其他活动。在这样做的过程中,Android会相对于活动抛出“泄漏窗口”消息。postdelayed