如果用service中開了一個線程。可能遇到的問題是:運行幾個小時後,service裏面的線程慢慢暫停運行。
service中線程暫停運行的原因,可能是你的service等級不夠,需要使用startForeground()提升其爲前臺服務。這樣才能保證服務不被輕易殺死,而服務被殺死後,你的進程沒有活動組件,進程就自動被殺死了,從而線程暫停運行。
推薦的方法:把鬧鐘寫在應用全局裏,在service中的onstartcommont重新開啓子線程。
注意:卸載了可疑的第三方軟件,在網絡穩定的情況下進行測試。
涉及到android系統休眠問題,1.需要設置AlarmManager類型爲RTC_WAKEUP或者ELAPSED_REALTIME_WAKEUP,這樣才能保證,鬧鐘到期喚醒系統並通知你;2.你的app監聽服務器線程記得也要申請PowerManager的wakeLock,防止等待期間被系統休眠;