【熱門】解決方案四篇

【熱門】解決方案四篇

  為了確保我們的努力取得實效,時常需要預先開展方案准備工作,方案是計劃中內容最為複雜的一種。那麼方案應該怎麼制定才合適呢?下面是小編為大家收集的解決方案4篇,歡迎閱讀,希望大家能夠喜歡。

解決方案 篇1

  摘要:作為建築工程當中的重點組成部分, 電氣安裝不僅對建築的經濟性以及實用性具有影響, 且將直接關係到整個建築的質量安全。就目前來說, 建築在電氣安裝工作當中還存在著一定的問題, 需要能夠及時做好問題的掌握與解決。在本文中, 將就建築電氣安裝工程中的問題與改善措施進行一定的研究。

  關鍵詞:建築電氣安裝工程; 問題; 改善措施;

  引言

  建築電氣安裝工程由多道工序組成, 工程內容繁多, 系統性較強。當今社會, 科學技術的進步使電氣安裝技術水平不斷提高, 電氣裝置快速更新換代, 這就要求相關的技術知識和操作規範必須同步更新, 否則必然會影響電氣安裝工程質量。鑑於此, 本文首先簡要分析當前建築電氣安裝工程現狀及存在的問題, 繼而從人員、裝置、質量管理等維度集中探討提高建築電氣安裝工程質量的方法和策略, 旨在找到一套行之有效的工程管理方法, 進一步強化對建築電氣安裝工程的質量控制。

  1 建築電氣安裝工程現狀

  在現今我國經濟水平不斷提升的情況下, 我國建築行業施工技術在此過程當中也獲得了不斷的發展, 人們不僅對建築的使用功能以及整體質量具有較高的重視程度, 對於建築當中電氣裝置的使用功能與質量也具有了更高的要求。尤其是對於部分高檔建築來說, 其在電氣裝置安裝以及裝修方面則具有了更高的要求, 需要透過一個完善、健全質量體系的建設, 從工程的各個階段對其進行全面的控制處理。在電氣安裝施工中, 經常會涉及到新工藝、新技術以及新材料等應用。同時, 大型工程在裝配、檢測以及吊裝技術方面具有了更高的要求。建築電氣施工因材料以及施工內容方面多樣性的存在, 在具體施工當中需要投入大量的人力與物力, 且需要施工單位具有豐富的施工經驗。在整個建築工程當中, 電氣安裝工程將貫穿在整個的過程當中, 對建築工期具有著重要的影響, 且其質量情況也將直接影響到建築的使用功能, 需要施工中做好把關與控制。

  2 當前建築電氣安裝存在問題

  在現今建築電氣安裝工作開展當中, 常見的問題有:

  2.1 裝置材料

  主要施工材料存在的問題有:第一, 導線在熔點、截面、溫度係數、尺寸以及機械效能方面不能夠滿足要求;第二, 電纜在絕緣電阻、耐溫性、內部接頭數量、絕緣層同線芯嚴密性以及耐壓性方面無法滿足要求;第三, 照明、動力以及插座箱在幾何尺寸以及外觀方面無法滿足要求, 塑膠、鋼板殼的厚度不夠, 對整個箱體的強度產生影響, 且在耐腐蝕性方面經常存在無法滿足要求的情況;第四, 插座以及開關在導電值方面存在同標稱值不符的情況, 導電金屬片接觸不好、彈性不足, 並因容易發熱而無法滿足安全方面要求。

  2.2 線路敷設

  在電力安裝工程建設當中, 在具體敷設線路時經常會出現原材料質量無法滿足要求的情況, 包括有鋼管、導線以及各類接線盒等。線上路具體敷設當中, 在導線質量方面存在一定的不足情況, 並因此使芯線同絕緣層間相脫離的情況。該種情況的存在, 在對線路進行通電之後, 則很可能因導線絕緣層受到破壞而存在漏電問題, 進而對人們的生命財產安全造成威脅。對於部分導線絕緣層, 其表面存在較為粗糙的情況, 且絕緣層厚度在均勻性方面存在不足, 也將因此影響到導線應用的安全性。在鋼管埋設時, 因鋼管內徑較小, 在鋼管敷設時則存在其彎曲弧度無法滿足要求的情況, 在使導線絕緣層很可能因此發生破裂的情況下威脅到人們的生命財產安全。

  2.3 技術人員問題

  電氣安裝工程是一項技術要求較高的工作, 如施工人員在安裝經驗以及基本技術方面存在不足, 則很可能使工程在投入運作的過程當中出現故障問題。在以往部分工程工作當中, 很多工程都是由老電工進行的裝置安裝與質量檢查。對於這部分電工來說, 雖然其在部分安裝細節方面經驗較為豐富, 但在電氣工程專業知識方面則存在著一定的不足, 也可能因無法滿足現階段施工需求而導致一定的問題發生。

  3 解決問題的對策構建

  為了能夠做好上述存在問題的解決, 即需要在施工中做好以下方面工作的開展:

  3.1 加強材料控制

  在施工企業建築電氣安裝施工工作開展中, 電氣材料與裝置可以說是工程開展的重要基礎。在具體工作開展中, 做好兩者的質量保證是首先需要解決的問題。要想保證電氣材料、裝置的質量, 採購是其中的關鍵環節。對於該項工作來說, 其並不是依靠單人完成的, 而需要採購部門在同其餘部門聯合的基礎上完成該項工作。在具體採購當中, 主要內容有確定採購渠道、選擇採購人員以及落實採購資金等方面, 可以說是一項系統、複雜的工程。在具體工作當中, 採購人員不僅需要能夠做好相關電氣材料以及裝置的鑑定工作, 且需要能夠加強電氣材料以及電氣裝置企業的資質管理, 同具有較高信譽、資質的企業開展合作。當相關材料、裝置進場後, 企業的質檢員、採購員以及保管員即需要能夠嚴格按照流程稽核電氣材料裝置, 對於出現問題的材料裝置, 則堅決不允許其入場, 避免因質量不合格導致電氣質量問題的發生。

  3.2 嚴選安裝人員

  在建築電氣安裝工程質量控制工作當中, 安裝人員可以說其中的一項重要要求, 在建築電氣安裝施工中, 安裝人員是工程活動的主要執行者, 其施工技術以及素質水平的高低將直接對建築電氣安裝工程質量產生影響。對此, 施工企業即需要能夠選拔好電氣工程安裝人員, 選拔出具有良好思想道德以及精湛技術能力的人才。對於高質量的電氣安裝工程來說, 其是眾多技術人員、施工人員以及管理人員共同努力獲得的結果。對此, 施工企業即需要做好科學是施工技術培訓體系的建立與完善, 以此在實現施工技術人員綜合素養以及專業技能提升的基礎上使其形成更強的質量控制意識。

  3.3 改善防雷接地

  在電氣安裝施工中, 防雷接地是其中的一項關鍵舉措, 其目的, 即是保證雨天天氣對電力系統不會造成破壞, 進而實現人民群眾安全的保證。在具體電氣安裝過程當中, 防雷接地可以說是非常重要的一項工作內容, 作為施工企業, 在具體防雷設計方面, 即需要將地面同各類金屬管道進行連線, 以此形成系統性的自然接地體。同其餘接地體相比, 自然接地體也存在著一定的問題, 即電阻有時存在無法對日常生產工作需求進行滿足的情況。如沒有自然接地體, 施工企業則可以將人工接地體埋入到地下, 以此對自然接地體存在的弊端進行彌補。在電氣安裝工作當中, 配電箱也是其中的重要組成部分, 是保障電氣工程動力、照明的重要動力。配電上上方原件具有型號複雜以及種類眾多的情況, 在實際對配電箱原件進行選擇時, 需要做好選擇與甄別工作。此外, 施工企業也需要能夠做好電氣裝置的上下級容量配合處理, 避免因配合問題對系統的執行可靠性產生影響。

  3.4 加強質量管理

  建築安裝工程施工質量的高低, 同所使用的施工技術間具有著密切的聯絡。技術因素方面, 則同施工人員的技術水平、資訊科技、裝備技術以及檢測技術等具有著密切的聯絡。在實際電氣安裝施工中, 即需要能夠將技術全面的貫徹在施工過程當中, 積極做好技術創新工作, 在加強新工藝、新技術研究的基礎上做好完善技術要求標準的.建立與落實。除了技術方面因素外, 施工企業也需要能夠對管理工作的重要性引起重視, 透過科學施工管理崗位責任制的建立與完善實現整個電氣安裝工程施工的全過程管理, 以此對電氣安裝施工中不同人員以及不同部門所具有的責任進行明確, 在做好施工方法、內容明確的基礎上做好施工結論分析, 在聯絡施工質量通病以及工程施工特點的基礎上做好電氣安裝工程施工管理目標的確定。

  3.5 建立ABC三級質量檢驗控制體系

  建立圖1所示ABC三級質量檢驗控制體系, 根據電氣工程實施過程分三級逐步落實工程質量檢驗工作。

  圖1 ABC三級質量檢驗控制體系

  3.5.1 在電氣施工過程中, 應該按照上文中的三級質量檢驗控制體系對電氣安裝質量嚴格把關。

  該質量控制體系主要分為A、B、C三個控制等級。A級為停檢點, 也就是在交工檔案中需要業主、監理方和質量監督站驗收並簽字確認的節點。B級為報告控制點, 是質檢員驗收並籤認後依照程式上報業主和工程監理的節點。C級是一般控制點, 應該由施工員或施工班組檢驗並簽字的節點, 在整個控制體系中也是相當重要的一個環節。

  3.5.2 報驗通知單

  (1) A級控制點:報驗通知單 (一式三份) 及相應的質量記錄由施工員自檢合格後填寫。按常規來講, 應該提前24小時將報檢通知單提交監理公司監理工程師兩份, 通知相關的技術員、質檢員和現場管理人員親自到現場進行驗收, 所有專案驗收合格後再由相關負責人簽字確認。

  (2) B級控制點:共檢通知單和與之相關的質量檢查記錄必須由專門的施工員驗收合格後再按規定填寫, 之後交給相關質檢員確認合格後再在記錄上簽字確認, 最後交給負責該專案的監理工程師統一抽檢。

  (3) C級控制點:不做共檢通知單, 由施工員檢查驗收後做記錄標識, 專職質量檢查員進行抽查。

  (4) 裝置、材料檢驗 (即合格證、材料抽檢、開箱檢驗等) B級以上 (含B級) 的檢驗通知單及相應的質量記錄, 由物資部專職材料檢驗員自檢合格後填寫, 原則上提前24小時 (一式三份) 負責提交監理工程師, 通知有關人員到現場聯合檢查, 經過相關人員檢查合格後, 簽字確認。

  4 結論

  總之, 建築電氣工程安裝工程在施工過程中出現問題是在所難免的, 但是如果問題根源是出現了質量問題或缺陷, 就必須採取措施嚴格控制, 以確保電氣安裝與整體建築工程的質量。在本文中, 我們對建築電氣安裝工程中的問題與改善措施進行了一定的研究。在實際安裝工作中工程人員還應該多注意一些常見的問題, 透過科學的管理方法和質量控制措施為整個工程的順利完工保駕護航。

  參考文獻

  [1]方健燕.簡述建築裝置安裝工程質量通病的防治[J].廣東建材, 20xx (03) .

  [2]張秋松.住宅小區開發建設中機電安裝工程需要注意的工程問題[J].城市住宅, 20xx (02) .

  [3]杜新紅.建築工程施工現場機電安裝工藝技術之研究論述[J].智慧城市, 20xx (02) .

  [4]袁瑞丹.機電安裝工程質量通病與防治探析[J].科技致富嚮導, 20xx (03) .

解決方案 篇2

  冰箱清潔步驟:

  1.清潔冰箱外殼最好每天進行,用微溼柔軟的布每天擦拭冰箱的外殼和拉手。

  2.清理內膽前先切斷電源,把冰箱冷藏室內的食物拿出來。

  3.軟布蘸上清水或食具洗潔精,輕輕擦洗,然後蘸清水將洗潔精拭去。

  4.拆下箱內附件,用清水或洗潔精清洗。

  5.清潔冰箱的“開關”、“照明燈”和“溫控器”等設施時,請把抹布或海綿擰得幹一些。

  6.內壁做完清潔後,可用軟布蘸取甘油(醫用開塞露)擦一遍冰箱內壁,下次擦的時候會更容易。

  7.用酒精浸過的布清潔擦拭密封條。如果手邊沒有酒精,用1:1醋水擦拭密封條,消毒效果很好。

  8.用吸塵器或軟毛刷清理冰箱背面的通風柵,不要用溼布,以免生鏽。

  9.清潔完畢,插上電源,檢查溫度控制器是否設定在正確位置。

解決方案 篇3

  緊張、忙碌的20xx年已進入金秋十月。回顧這段時間以來,在上級部門的領導下,克服各種工作困難,不斷拓寬服務領域,低保工作取得了一定的進展和提高。透過學習,用科學的理論武裝頭腦,更新了觀念,振奮了精神,以促進社會經濟協調發展為目標,以保障弱勢群體基本生活權益為己任,履職盡責,盡心盡力,較好的完成了今年的工作任務,現將工作情況總結如下:

  一、克服困難,按時完成各項工作

  我社群地處偏僻,居民大多是下崗、失業、無業人員,每月對申請低保的貧困戶嚴格按照上級檔案要求申報。全面掌握實際情況,真正做到戶主清、人口清、住址清、年齡清、職業清、工作單位清、單位性質清、總收入清、人均收入清、補助金額清。努力實現“應保盡保、分類救助”。對符合低保條件的家庭經評議小組評議,並嚴格按照初審、複審、申報工作進行辦理,認真建立三級檔案,對審批透過的進行張榜公示。月初填報11張低保月報表,做到責任心強字跡抄寫工整,以保證每份表格清晰、資料準確,上報到辦事處。在完成每月固定工作的同時,更要完成好上級領導按排的其它工作任務。今年為特困戶每人每年醫療救助上調標準,市區民政部門先後統一按排學習,為他們減輕了一定的生活負擔。要求特困戶家庭成員的資訊全部錄入微機,工作量大、時間緊迫、是前所未有的。但是我仍然按時將資訊準確的上報到民政局。剛剛休過“十一”長假,一身的疲憊揮之而去,又迎來了新的工作任務,利用年末整理檔案。

  二、嚴格把關,切實搞好摸底調查工作。

  今年深入細緻地對全社群各類人員一一進行了排查,將社群困難的具體情況,困難戶的戶數、人員分類以及低保狀況進行了全面調查,要求特困戶開單位證明、學生證明等,並實行居民群眾全程監督制,隨時掌握低保物件的收入動態,認真實行低保工作的“動態管理”,經調查特困戶中因佔地單位給每月發補助金的,查實後給予停發特困金。社群共清理出因家庭收入發生變化,不符合低保條件而停發 戶 人;新增低保物件 戶 人。現有低保戶數 戶 人 元。使低保金能進能出,可升可降。杜絕不符合低保條件的居民領取,從而節約有限的國家資源。

  三、提高意識,真正走出貧困生活

  低保工作就是做人的工作。讓真正困難的人享受到低保待遇只是低保工作的開始。我們最終目的是透過教育,使他們轉變心態,讓有工作能力的自動走出低保,實現自食其力。利用每月簽到日組織一些活動,如進行公益勞動,清理街頭小廣告,學習國家的最新政策。積極與社保員聯絡,如有技能培訓,低保戶優先報名參加,對這一群體組織免費職業指導、職業介紹和就業培訓。並有意識、有計劃、有目標地引導他們就業。

  雖然對低保工作傾注了大量精力,做了大量的工作,目前興安地區的低保工作也有所突破,但總感到在學習的深入性和系統性上還有很大不足。工作作風上有差距。高標準、嚴要求、高質量的意識還不夠強,還存在問題,還有待於進一步的完善。在今後工作中我更要以服務社會、服務群眾為根本宗旨。保障困難群眾的基本生活為首要任務。加強與上級領導的聯絡,進一步提高低保工作服務質量和保障水平,充分發揮優秀低保人員的中堅力量。

  低保工作做到透明化、陽光化管理。牢固樹立“民政為民”的服務意識。

  社群低保工作的難點和解決措施

  隨著城市的不斷髮展,城市的貧富程度差距日益拉大,低收入群體面臨較大的生活困難,政府透過最低生活保障制度解決了困難低收入群體的生活困難。這項惠民措施實行以來,解決了各類困難群體的實際生活困難,緩解了他們看病難、看病貴的困難。我市的低保救助工作在實踐執行中也面臨了一些問題,亟待解決。接下來,我結合工作實踐經歷和本次培訓的心得體會談談對低保救助工作的想法。

  一、我社群低保救助基本情況

  社群總面積約6萬平方米,總人口XX人,現有低保戶XX戶。我社群共有小區XX 、XX 、XX和XX五個小區,其中小區和XX區為老小區,人員主要是原國有和集體企業的職工住房和下方回寧的房屋,困難居民較多,也是社群低保救助的難點和重點。

  二、我社群低保救助工作的難點

  社群開展低保救助工作多年以來,幫助了很多困難家庭解決了實際困難,也有力地維護了社會的和諧穩定,但是目前也面臨不少問題,存在較多工作難點。

  一是人戶分離人員難管理。我社群低保戶較多,按人戶情況可分為人在戶在和人戶分離兩種情況。其中人在戶在是指戶籍在我社群,實際居住地也在我社群的低保家庭。這類人群便於掌握其家庭實際情況,也便於管理和服務。人戶分離是指戶籍在我社群,居住在其他社群的低保家庭,這類人員又多是因拆遷在外過度或者已經拿到經濟適

  用房為遷戶口。低保救助工作的政策對收入情況和住房面積有明確的要求,而社群對人戶分離低保家庭收入和住房面積的掌握主要是透過低保年審時的書面審查和其他途徑瞭解。這種方式為無奈之舉,並不能準確、全面的掌握他們的情況,給我社群的低保救助工作帶來很大的困難。

  二是政策宣傳和落實在內容和時間上存在差距。政府和社會非常關心低保家庭的生活困難,也想盡辦法解決他們的實際生活困難。報紙作為重要的宣傳工具,能夠及時的報道我市對低保家庭的關懷和幫助,但由於報紙宣傳時間和政策落實有一個過程,宣傳的內容與實際落實在細微上也存在少數不一致的情況,導致了部分居民對社群低保工作的誤解,甚至發生過居民拿著報紙要求社群落實惠民政策。我們非常重視和理解居民的訴求,面對居民的誤解,但也只能耐心細緻的解釋,並不能拿出具體的方案給群眾解釋,在一定程度上影響了社群的公信力。

  三、解決工作難點,做好群眾工作

  社群低保救助工作雖然面臨很多難點,但作為基層工作人員,我們有信心、能力和責任採取有力措施,做好群眾工作,解決工作難點,踐行為民服務的宗旨。

  一是要認真學習低保政策法規。群眾的誤解很多是因為他們對政策不夠了解,對政策理解存在片面性。這就要求我們認真學習低保政策法規,宣傳黨和政府惠民政策的同時,,耐心細緻為居民解答政策疑問,最大限度避免因政策理解不到位引發的不穩定因素,著力提升社會的整體和諧度。

  二是要統籌媒體宣傳和政策落實。希望上級部門能夠協調媒體宣傳部門,增強媒體政策宣傳和政府政策落實的協排程。既要在最大限度上發揮媒體宣傳的特有作用,又要在政策落實的時間節點上與媒體宣傳保持一致,為基層社群的工作提供良好的輿論和政策環境。

  三是要建立和完善全市統一的低保救助資訊平臺。人戶分離情況較為常見,這就需要全市基層社群齊抓共管,步調一致。當務之急是建立和完善全市統一的低保救助資訊平臺,按照“戶籍地入保、居住地調查”的原則,明確相關基層社群、村的職責分工,完善低保家庭收入和住房情況的調查體系,在最大限度上落實“應保盡保、應出盡出”的工作要求。與此同時,還要建立全市統一的低保轉入傳出機制,為符合條件遷移戶口的低保家庭轉入新的戶籍地提供條件,避免出現低保遷移空檔,影響低保戶遷移的積極性,進而影響低保工作的紮實開展。透過資訊平臺的建立,可以形成齊抓共管的良好局面,也有助於低保政策的進一步落實,堅決防止收入和住房超標人員享受最低生活保障,增加財政負擔,影響社會公平。

  透過此次培訓,我進一步認識到在工作中,要紮實細緻的開展工作,開動腦筋,想辦法解決工作的難題,做好新形勢下的群眾工作,切實維護人民群眾的利益,維護社會的公平、正義和穩定。

解決方案 篇4

  Android設定鬧鐘並不像IOS那樣這麼簡單,做過Android設定鬧鐘的開發者都知道里面的坑有多深。下面記錄一下,我解決Android鬧鐘設定的解決方案。

  主要問題

  1、API19開始AlarmManager的機制修改。

  2、應用程式被Kill掉後,設定的鬧鐘不響。

  3、6.0以上進入Doze模式會使JobScheduler停止工作。

  4、手機設定重啟後,鬧鐘失效問題。

  API19以上AlarmManager機制的修改

  API19之前AlarmManager提供了三個設定鬧鐘的方法,由於業務需求鬧鐘只需要一次性,所以採用set(int type,long startTime,PendingIntent pi);這個方法。

  從API 19開始,AlarmManager的機制都是非準確傳遞,作業系統將會轉換鬧鐘,來最小化喚醒和電池使用。

  由於之前的程式,沒有對API19以上的鬧鐘設定做處理,導致在4.4以上的手機設定鬧鐘無響應(應用程式沒有被殺死的情況也沒有鬧鐘)。

  因些,設定鬧鐘需要根據API的版本進行分別處理設定。程式碼如下:

  AlarmManager am = (AlarmManager) getActivity() .getSystemService(Context.ALARM_SERVICE);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { am.setExact(AlarmManager.RTC_WAKEUP, TimeUtils .stringToLong(recordTime, TimeUtils.NO_SECOND_FORMAT), sender);}else { am.set(AlarmManager.RTC_WAKEUP, TimeUtils .stringToLong(recordTime, TimeUtils.NO_SECOND_FORMAT), sender);}

  這樣,保證鬧鐘在應用程式沒有被Kill掉的情況鬧鐘。

  應用程式被Kill掉時的處理

  應用程式被Kill掉後,設定的鬧鐘失效,這裡利用守護程序以及灰色保活來保證後臺鬧鐘服務不被Kill掉。當應用程式以及鬧鐘服務被Kill掉,守護程序以及灰色保活來重新啟動鬧鐘服務,並且重新設定鬧鐘。

  關於守護程序的處理,這裡採用開源的守護程序庫。Android-AppDaemon

  在鬧鐘服務的onCreat加入Android-AppDaemon這個開源的守護程序。程式碼如下:

  @Overridepublic void onCreate() { super.onCreate(); Daemon.run(DaemonService.this, DaemonService.class, Daemon.INTERVAL_ONE_MINUTE); startTimeTask(); grayGuard();}

  為進一步保證鬧鐘服務的存活,同加上灰色保活(利用系統的漏洞啟動前臺Service)。

  程式碼如下:

  private void grayGuard() { if (Build.VERSION.SDK_INT < 18) { //API < 18 ,此方法能有效隱藏Notification上的圖示 startForeground(GRAY_SERVICE_ID, new Notification()); } else { Intent innerIntent = new Intent(this, DaemonInnerService.class); startService(innerIntent); startForeground(GRAY_SERVICE_ID, new Notification()); } //傳送喚醒廣播來促使掛掉的UI程序重新啟動起來 AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent alarmIntent = new Intent(); alarmIntent.setAction(WakeReceiver.GRAY_WAKE_ACTION); PendingIntent operation = PendingIntent.getBroadcast(this, WAKE_REQUEST_CODE, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { alarmManager.setWindow(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), ALARM_INTERVAL, operation); }else { alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), ALARM_INTERVAL, operation); }}/** * 給 API >= 18 的平臺上用的灰色保活手段 */public static class DaemonInnerService extends Service { @Override public void onCreate() { Log.i(LOG_TAG, "InnerService -> onCreate"); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i(LOG_TAG, "InnerService -> onStartCommand"); startForeground(GRAY_SERVICE_ID, new Notification()); //stopForeground(true); stopSelf(); return super.onStartCommand(intent, flags, startId); } @Override public IBinder onBind(Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); } @Override public void onDestroy() { Log.i(LOG_TAG, "InnerService -> onDestroy"); super.onDestroy(); }}

  上面操作儘可能提高鬧鐘服務的存活。但是在5.0以上的手機,利用系統的自帶的Clean功能的時候,還是會將鬧鐘服務徹底的幹掉。為了解決5.0以上的問題,這裡引入5.0以上的新特性 JobScheduler。

  5.0以上的JobScheduler

  在這裡利用5.0以上的JobScheduler建立一個定時的任務,定時檢測鬧鐘服務是否存在,沒在存在則重新啟動鬧鐘服務。(這裡我設定每一分鐘檢測一次鬧鐘服務)

  在進入應用程式的時候檢測當前系統是否是5.0以上,如果是則啟動JobScheduler這個服務。程式碼如下:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mJobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE); JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, new ComponentName(getPackageName(), JobSchedulerService.class.getName())); builder.setPeriodic(60 * 1000); //每隔60秒執行一次 builder.setRequiresCharging(true); builder.setPersisted(true); //設定裝置重啟後,是否重新執行任務 builder.setRequiresDeviceIdle(true); if (mJobScheduler.schedule(builder.build()) <= 0) { //If something goes wrong }}

  其中的builder.setPersisted(true); 方法是裝置重啟後,是否重新執行任務,在這測過是可以重新啟動任務的。

  上面的操作進一步保證了鬧鐘服務被Kill掉後,重新啟動服務。但是在6.0以上引入了Doze模式,當6.0以上的手機進入這個模式後,便會使JobScheduler停止工作。

  6.0以上Doze模式的處理

  為了讓JobScheduler可以在6.0以上進入Doze模式工作,這裡針對6.0以上的Doze模式做特殊的處理-忽略電池的最佳化。

  在Manifest.xml中加入許可權。

  

  在設定鬧鐘的時候,判斷系統是否是6.0以上,如果是,則判斷是否忽略電池的最佳化。判斷是否忽略電池最佳化程式碼如下:

  @TargetApi(Build.VERSION_CODES.M)public static boolean isIgnoringBatteryOptimizations(Activity activity){ String packageName = activity.getPackageName(); PowerManager pm = (PowerManager) activity .getSystemService(Context.POWER_SERVICE); if (pm.isIgnoringBatteryOptimizations(packageName)) { return true; }else { return false; }}

  如果沒有忽略電池最佳化的時候,彈出提醒對話方塊,提示使用者進行忽略電池最佳化操作。程式碼如下:

  /*** 針對N以上的Doze模式** @param activity*/public static void isIgnoreBatteryOption(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { Intent intent = new Intent(); String packageName = activity.getPackageName(); PowerManager pm = (PowerManager) activity.getSystemService(Context.POWER_SERVICE); if (!pm.isIgnoringBatteryOptimizations(packageName)) {// intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + packageName)); activity.startActivityForResult(intent, REQUEST_IGNORE_BATTERY_CODE); } } catch (Exception e) { e.printStackTrace(); } }}

  在介面重寫onActivityResult方法來捕獲使用者的選擇。如,程式碼如下:

  @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == BatteryUtils.REQUEST_IGNORE_BATTERY_CODE){ //TODO something } }else if (resultCode == RESULT_CANCELED){ if (requestCode == BatteryUtils.REQUEST_IGNORE_BATTERY_CODE){ ToastUtils.show(getActivity(), "請開啟忽略電池最佳化~"); } }}

  補充

  當應用程式被Kill掉,但是鬧鐘的服務沒有被Kill掉的,這時候又設定了鬧鐘。這就意味著設定的鬧鐘沒有放到鬧鐘服務那裡。所以這種情況,設定的鬧鐘會失效。為了解決這種情況,利用AIDL(鬧鐘服務在另一個程序的需要程序間通訊)呼叫鬧鐘服務的重新設定鬧鐘方法重設鬧鐘。

  在應用程式的onCreat()方法啟動鬧鐘服務,然後再繫結鬧鐘服務。

  private void initAlarmService() { startService(new Intent(this, DaemonService.class));//啟動鬧鐘服務 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //JobScheduler ... } //繫結鬧鐘服務 Intent intent = new Intent(this, DaemonService.class); intent.setAction("android.intent.action.DaemonService"); bindService(intent, mConnection, Context.BIND_AUTO_CREATE);}

  在onDestroy()方法,呼叫鬧鐘服務的重設鬧鐘方法。程式碼如下:

  @Overrideprotected void onDestroy() { super.onDestroy(); try {//判斷是否有鬧鐘,沒有則關閉鬧鐘服務 String alarm = localPreferencesHelper.getString(LocalPreferencesHelper.ALARM_CLOCK); if (daemonService != -1 && mIRemoteService != null) {// android.os.Process.killProcess(daemonService); mIRemoteService.resetAlarm(); } if (!alarm.equals("[]")) { if (daemonService != -1) { startService(new Intent(this, DaemonService.class)); } } else { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mJobScheduler.cancel(JOB_ID); } } unbindService(mConnection); //解除繫結服務。 } catch (Exception e) { }}

  這裡說明一下,當服務啟動並且被繫結的情況下,unbindService是不會停止服務的。

  最後

  以上並不代表所有的Android手機的鬧鐘都可以用,這只是盡最大的可能保證大部分的手機。

  以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援教程網。

最近訪問