2010-09-27 47 views
3

我正在尝试在我妻子的电话上构建一个应用程序,在4月01日愚人节当天恶作剧。该应用程序将改变她的背景,看起来像屏幕被破解,背景是非常有说服力的,当我尝试在我的Droid(我被类似的恶作剧)。2011年4月1日我如何才能让应用触发一组操作?

无论如何,深入研究这将如何工作,我认为它的过程,但是,我可能看起来太过分了。我开始潜入设置一个警报,但是,我感到困惑的有两件事情:

  1. 难道有必要我妻子的手机在后台加载这个恶作剧的应用程序每次她重新启动了她的电话时?我假设是的,因为我认为这个恶作剧应用程序很可能会引起广播接收者“倾听”2011年4月1日?

  2. 如果应用程序不需要每次在后台加载,什么方便Android提醒我的应用程序并在2011年4月1日发布它时发布它?

我希望让任何意义,基本上,我要确保在04月01日这个应用程序运行,2011就算我老婆的手机死机或重启。

什么是最直接的方法使这项工作?如果我不能正确理解广播接收器,我很抱歉,这是我不习惯的新概念。服务和广播接收器功能是Android的本地特性,不是任何其他语言,不是?

感谢太早帮助这个福利局:)

+2

非程序化解决方案真的很难吗? (即:提前起床并改变背景?) – 2010-09-27 04:01:01

+0

嗨马克,我明白,很明显,但我想在其他应用程序中使用此功能,所以我需要了解这种事件如何工作。你知道吗? – AutoM8R 2010-09-27 04:17:09

+0

我将等待一个题目:“我怎样才能让应用程序触发2012年4月1日的一组操作?”由您的妻子:) – Macarse 2010-09-27 04:35:22

回答

1

位规划愚人节,是吗? :)

所有你需要的是一个单一的BroadcastReciever

创建一个BroadcastRecieverBOOT_COMPLETED添加到其意向过滤器。你将会被叫做onRecieve()。这将发生在两种情况下

1)您的手机启动。

2)您击中了闹钟。

要检查事件发生时,请检查您收到意向行动是"BOOT_COMPLETED",如果是那么你的手机启动了这样的设置报警于2011年4月1日,(从技术上讲,你应该有自己的自定义操作意向,但在这种情况下你并不需要它......)

现在,如果您的操作不是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. 
} 
} 

对不起,如果我误解了你的问题,你是否需要报警管理帮助吗?

Ofcourse,As Macarse指出你需要SET_WALLPAPERRECEIVE_BOOT_COMPLETED权限。

+0

您还需要所有权限才能这样做。 – Macarse 2010-09-27 04:32:13

+0

@Macarse,已更新! :) – st0le 2010-09-27 04:43:24

+0

这正是我所寻找的,非常好,Boot Completed“flag”正是我错过的部分。 – AutoM8R 2010-09-27 05:30:34

相关问题