2012-03-20 66 views
1

我有一個BroadcastReceiver在發送SMS之後偵聽「SMS_SENT」Intent。據我所知,SMSManager確實提供了一個喚醒鎖,以便它可以發送短信(我沒有任何證據,但常識會告訴我這是事實)。Android - 我需要一個WakeLock嗎?

但是,我的BroadcastReceiver調用一個WakefulIntentService,它使用自己的喚醒鎖定,所以這沒問題。但是,接收機本身呢?我是否需要創建一個新的喚醒鎖,以便我可以保證WakefulIntentService被調用?或者我可以安全地忽略這一點,就像可以使用AlarmManager的接收器一樣?

感謝

回答

2

但是,接收機本身呢?我是否需要創建一個新的喚醒鎖,以便我可以保證WakefulIntentService被調用?

一旦您的接收器呼叫​​,WakefulIntentService引擎獲取WakeLock

只要你打電話之前沒有做很多工作,你應該沒問題。

+0

謝謝。廣播接收器只是具有一個switch語句,用於爲喚醒意圖服務的調用相應地在intent中填充extras。這聽起來可以接受嗎? – jtnire 2012-03-20 23:46:24

+0

@jtnire:這本身應該增加一點開銷。我不知道SMS廣播過程是否有自己的'WakeLock'。可以想象,在SMS發送之前,設備可能會在睡眠中睡着,儘管這看起來不太可能,而且無論如何你都無法做到這一點。 – CommonsWare 2012-03-20 23:56:59

1

我覺得你並不需要創建一個喚醒鎖定等待響應。這是我的想法。首先,假設您的廣播接收器出於某種原因沒有收到廣播。那麼你將有一個活躍的喚醒鎖。其次,在我看來,廣播應該激活你的手機(因爲我從來沒有見過創建wakelock的短信應用示例)。所以以我的觀點來看,你不需要創建一個喚醒鎖。