如何在启动后的预定时间打开活动

Posted

技术标签:

【中文标题】如何在启动后的预定时间打开活动【英文标题】:How to open an activity at a pre-determined time from boot up 【发布时间】:2018-06-11 04:24:53 【问题描述】:

我需要在预定的时间打开我的应用程序。我一直在寻找最好的方法来做到这一点并且很困惑。 我目前正在使用BroadcastReceiver 回复onBoot。这很好用,但下一步最好走哪条路? 我应该设置一个AsyncTask ..要么.. 我应该设置一个Service。 那么我应该使用AlarmManager 还是TimerTask 来触发Main activity 启动? 或者我什至应该在BroadcastReceiver 中使用AlarmManager/TimerTask? 哪门课程是最佳实践?为什么?

【问题讨论】:

【参考方案1】:

如果不需要精确的精度,请使用 AlarmManager,因为这对用户的影响最小。否则,我会亲自使用服务。需要考虑的一种情况是,用户可能会在您之前打开应用程序并导航到另一个活动。此外,用户可以打开您的应用并在此之前再次离开。

【讨论】:

精确度相当重要,无论如何都要在几秒钟内完成。如果我让 BroadcastReceiver 触发服务,我应该让该服务运行 TimerTask 吗?然后,一旦任务运行,我可以检查手机是否需要唤醒,应用程序是否已经在运行等。

以上是关于如何在启动后的预定时间打开活动的主要内容,如果未能解决你的问题,请参考以下文章

如何在完成后重新打开活动并在其中再次启动相机预览

按下设备的主页键后,如何始终在图标按下时打开当前活动

如何停止在对话框中打开的键盘上调整大小/向上推的活动?

方向改变后的第二次活动

如何在 Android 10 中打开活动(来电)

如何在不实际启动活动的情况下检查外部应用程序的活动“exported=false”