代码之家  ›  专栏  ›  技术社区  ›  AutoM8R

如何使应用程序在2011年4月1日触发一组操作?

  •  3
  • AutoM8R  · 技术社区  · 15 年前

    我正在尝试在我妻子的手机上建立一个应用程序,在4月1日愚人节这天恶作剧。该应用程序将改变她的背景,看起来像屏幕被破解,背景是非常令人信服的,当我尝试在我的机器人(我被恶作剧类似)。

    不管怎样,深入研究这将如何工作,我认为这是相当的过程,然而,我可能是看得太远了。我开始潜入设置警报,然而,我对以下几件事感到困惑:

    1. 我妻子的手机是否需要在每次重新启动时在后台加载这个恶作剧应用程序?我假设是的,因为我相信这个恶作剧应用程序很可能会调用广播接收器来“收听”2011年4月1日的节目?

    2. 如果应用程序不需要每次都在后台加载,那么在2011年4月1日到来时,是什么让Android提醒我的应用程序并启动它呢?

    我希望这有任何意义,基本上,我想确保这个应用程序运行在2011年4月1日,即使我妻子的手机崩溃或重新启动。

    最直接的方法是什么?我很抱歉,如果我不理解广播接收器正确,这是相当新的概念,我不习惯。服务和广播接收器功能是Android自带的,而不是任何其他语言,不是吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   st0le    15 年前

    为愚人节做计划太早了,是吗?:)

    BroadcastReciever .

    广播接收器 添加 BOOT_COMPLETED onRecieve() 将被调用。这种情况有两种

    2) 你的闹钟响了。

    哪一个 事件发生,请检查接收到的意图操作是否正确 "BOOT_COMPLETED"

    如果你的行为不是 Boot completed april 1 所以在这种情况下,用 WallpaperManager

    void onRecieve(Context ctx,Intent intent)
    {
    if( intent.getAction.equals( /* Boot Completed */)
    {
       //setup alarm using alarm manager
    }else
    {
       //change wallpaper.
    }
    }
    

    很抱歉,如果我误解了你的问题,你需要报警管理器的帮助吗?

    当然,作为 Macarse SET_WALLPAPER RECEIVE_BOOT_COMPLETED