2010-09-27 44 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

相關問題