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